Problem Solving

Problem Solving

    [백준, BOJ 1924] 2007년 (java)

    출처-https://www.acmicpc.net/problem/1924 1924번: 2007년 첫째 줄에 빈 칸을 사이에 두고 x(1≤x≤12)와 y(1≤y≤31)이 주어진다. 참고로 2007년에는 1, 3, 5, 7, 8, 10, 12월은 31일까지, 4, 6, 9, 11월은 30일까지, 2월은 28일까지 있다. www.acmicpc.net import java.util.Scanner; public class Main { public static void main(String[] args) { // TODO Auto-generated method stub Scanner scan=new Scanner(System.in); int monthToDay[]=new int[12]; //(해당 달-1)에 며칠까지..

    [백준, BOJ 2739] 구구단 (java)

    출처-https://www.acmicpc.net/problem/2739 2739번: 구구단 N을 입력받은 뒤, 구구단 N단을 출력하는 프로그램을 작성하시오. 출력 형식에 맞춰서 출력하면 된다. www.acmicpc.net import java.util.Scanner; public class Main { public static void main(String[] args) { // TODO Auto-generated method stub Scanner scan=new Scanner(System.in); int num=scan.nextInt(); for (int i=1;i

    [백준, BOJ 2742] 기찍 N (java)

    출처-https://www.acmicpc.net/problem/2742 2742번: 기찍 N 자연수 N이 주어졌을 때, N부터 1까지 한 줄에 하나씩 출력하는 프로그램을 작성하시오. www.acmicpc.net import java.util.Scanner; public class Main { public static void main(String[] args) { // TODO Auto-generated method stub Scanner scan=new Scanner(System.in); int num=scan.nextInt(); for(int i=num;i>=1;i--) System.out.println(i); } }

    [백준, BOJ 2011] 암호코드 (java)

    출처-https://www.acmicpc.net/problem/2011 2011번: 암호코드 문제 상근이와 선영이가 다른 사람들이 남매간의 대화를 듣는 것을 방지하기 위해서 대화를 서로 암호화 하기로 했다. 그래서 다음과 같은 대화를 했다. 상근: 그냥 간단히 암호화 하자. A를 1이� www.acmicpc.net 내 생각 : 일단 처음 수(c[1])가 0이면 암호 해석은 불가능하다.(ans=0) i가 2~n.length() 일 때의 c[i]는 다음과 같은 경우가 발생할 수 있다. 우선 c[i]=0일 때는 c[i-1]가 1과 2일 때만 암호 해석이 가능하다. (10, 20) 그리고 이때는 무조건 c[i-1]가 c[i]와 묶여 하나의 경우만 가질 수 있으니 dp[i]=dp[i-2]이다. 만약 c[i-1]이..

    [백준, BOJ 2225] 합분해 (java)

    출처-https://www.acmicpc.net/problem/2225 2225번: 합분해 첫째 줄에 답을 1,000,000,000으로 나눈 나머지를 출력한다. www.acmicpc.net 내 생각 : dp[0]은 몇자리수로 나타내건 1가지는 꼭 가능하다. dp[n][k]는 패턴을 분석해보면 알겠지만 dp[n][k]=dp[n][k-1]+dp[n-1][k-1]+dp[n-2][k-1]+...+d[1][k-1]+dp[0][k-1]이다. 이 식만 알아내면 쉽게 풀 수 있다. import java.util.Scanner; public class Main { public static void main(String args[]) { Scanner scan=new Scanner(System.in); int n=scan..

    [백준, BOJ 9461] 파도반 수열 (java)

    출처-https://www.acmicpc.net/problem/9461 9461번: 파도반 수열 문제 오른쪽 그림과 같이 삼각형이 나선 모양으로 놓여져 있다. 첫 삼각형은 정삼각형으로 변의 길이는 1이다. 그 다음에는 다음과 같은 과정으로 정삼각형을 계속 추가한다. 나선에서 가장 긴 � www.acmicpc.net 내 생각 : 험난한 DP 문제들을 풀던 중 만난 단비 같은 문제ㅎ 처음 문제 딱 들어가자마자 도형이 나와서 당황했지만, 문제에 은근히 발견하기 쉬운 패턴이 있어서 다행이었다. 우선 dp[0]=0, dp[1]=1, dp[2]=1는 주어졌고 dp[3]부터는 dp[i]=dp[i-3]+dp[i-2]라는 규칙이 있는 것을 알 수 있다. 따라서 이 식을 사용하여 문제를 풀면 됨. ==>> dp와 arr의..

    [백준, BOJ 2741] N 찍기 (java)

    출처-https://www.acmicpc.net/problem/2741 2741번: N 찍기 자연수 N이 주어졌을 때, 1부터 N까지 한 줄에 하나씩 출력하는 프로그램을 작성하시오. www.acmicpc.net import java.util.Scanner; public class Main { public static void main(String[] args) { // TODO Auto-generated method stub Scanner scan=new Scanner(System.in); int num=scan.nextInt(); for(int i=1;i

    [백준, BOJ 11721] 열 개씩 끊어 출력하기 (java)

    출처-https://www.acmicpc.net/problem/11721 11721번: 열 개씩 끊어 출력하기 첫째 줄에 단어가 주어진다. 단어는 알파벳 소문자와 대문자로만 이루어져 있으며, 길이는 100을 넘지 않는다. 길이가 0인 단어는 주어지지 않는다. www.acmicpc.net import java.util.Scanner; public class Main { public static void main(String args[]) { Scanner scan=new Scanner(System.in); String str=scan.next(); int count=1; char c; for (int i=0;i

    [백준, BOJ 11720] 숫자의 합 (java)

    출처-https://www.acmicpc.net/problem/11720 11720번: 숫자의 합 첫째 줄에 숫자의 개수 N (1 ≤ N ≤ 100)이 주어진다. 둘째 줄에 숫자 N개가 공백없이 주어진다. www.acmicpc.net import java.util.Scanner; public class Main { public static void main(String[] args) { // TODO Auto-generated method stub Scanner scan=new Scanner(System.in); int N=scan.nextInt(); String nums=scan.next(); char num; int sum=0; for (int i=0;i

    [백준, BOJ 11719] 그대로 출력하기 2 (java)

    출처-https://www.acmicpc.net/problem/11719 11719번: 그대로 출력하기 2 입력이 주어진다. 입력은 최대 100줄로 이루어져 있고, 알파벳 소문자, 대문자, 공백, 숫자로만 이루어져 있다. 각 줄은 100글자를 넘지 않으며, 빈 줄이 주어질 수도 있고, 각 줄의 앞 뒤에 공백이 www.acmicpc.net import java.util.Scanner; public class Main { public static void main(String args[]) { Scanner scan=new Scanner(System.in); String str; while(scan.hasNext()) { str=scan.nextLine(); System.out.println(str); } ..