문제설명입력 & 출력나의 풀이 이번 문제는 2xn 타일링 문제에 이어지는 문제입니다. 위 그림과 같은 타일이 존재할 때 입력으로 n을 받아 2xn의 크기의 직사각형을 채우는 문제입니다. 타일을 채우다 보면 n = 5일 때 0~5까지의 타일링의 수는 다음과 같습니다. n= 0 ➡️ 1 (채우는 방법이 없으므로 1부터 시작)n= 1 ➡️ 1n= 2 ➡️ 3n= 3 ➡️ 5n= 4 ➡️ 11n= 5 ➡️ 21위 타일링의 수를 생각해서 DP의 가장 핵심요소인 점화식을 도출해야 합니다. 좀 더 이해를 하기 쉽게 그림으로 표현하면 다음과 같습니다. 만약에 n = 3일 때를 보면 n-1의 타일에서 2x1의 타일이 추가된 것을 볼 수있습니다. n-2의 타일에서 2x2를 채우는 경우는 1x2 ➡️ 2개 2x2 ➡️ 1..
문제설명입력 & 출력나의 풀이 이번 문제는 듣도 못한 사람 N과 보도 못한 사람 M이 주어질 때 듣도 못한 사람 + 보도 못한 사람 = "듣도보도 못한 사람"을 구하는 문제입니다. 먼저 빠른 입력을 위해서 Buffer로 입력을 받아주고, StringTokenizer를 사용하여 N과M을 공백을 기준으로 분리하여 각각 저장해줍니다. 저는 N과 M의 입력을 한 번에 받아서 듣지도 보지도 못한 사람은 vlaue가 2가 형성되도록 구성했습니다. HashMap을 선언해 주고, N과 M을 입력을 받고, getOrDefault() 메서드를 사용하여 해당하는 이름을 1씩 증가했습니다. 이러면 듣도 보도 못한 사람은 위 실행결과와 같이 value가 2가 형성됩니다. 그리고 keySet() 메서드와 get() 메서드를 사..
문제설명입력 & 출력 나의 풀이 이번 문제는 100 x 100의 크기를 가진 도화지에서 색종이가 입력으로 주어질 때 색종이가 붙여진 넓이를 구하는 문제입니다. 먼저 빠른 입력을 위해서 Buffer로 입력을 받아주고, 100x100의 도화지를 의미하는 paper배열을 초기화해 줍니다. 그리고 StringTokenizer를 사용하여 공백을 기준으로 각 도화지의 왼쪽 아래의 point를 x와 y에 저장을 해줍니다. 문제에서 나와있듯이 색종이는 가로, 세로 10의 크기를 가진 색종이라고 얘기했기 때문에 (x, y)의 위치만 알아도 색종이의 크기를 알 수 있습니다. 25번째 줄에서 이중 for문을 사용하여 색종이의 크기만큼 도화지에 1을 넣어줍니다. 그리고 32번째 줄에서 도화지 전체를 순회하면서 1인 경우 즉 ..
문제설명입력 & 출력 나의 풀이 이번 문제는 요세푸스 순열에 대한 문제입니다. 요세푸스 순열이란 문제에서 나와있듯이 "원형으로 앉아 있는 N명의 사람들이 순서대로 제거되는 과정 "입니다. 이 때 매번 K번째 사람을 제거하며, 마지막 한 사람이 남을 때까지 이 과정을 반복합니다. 이해를 돕기위해 위 그림을 기준으로 예로 들자면 8명의 사람이 위와 같이 원형으로 앉아 있습니다.1번째 사람부터 제거를 하면 3 ➡️ 6 ➡️ 1 ➡️ 5 ➡️ 2 ➡️7➡️4 ➡️ 8 순서로 제거가 됩니다. 초기 상태 1, 2, 3, 4, 5, 6, 7, 8첫 번째 제거 1, 2, 3, 4, 5, 6, 7, 8 (3 제거)두 번째 제거 4, 5, 6, 7, 8, 1, 2 (6 제거)세 번째 제거 7, 8, 1, 2, 4, 5..