CODING119 [BAEKJOON] 1051번 숫자 정사각형 간단하게 생각해보면 이중 for 루프로 좌측 상단 꼭지점을 기준으로 정사각형이 만들어지는지 탐색한다. 하지만 탐색을 위해서는 좌측 상단 꼭지점을 기준으로 오른쪽으로 탐색하여 M-1 인덱스까지 같은 숫자가 있는지, 아래쪽으로 탐색하며 N-1 인덱스까지 같은 숫자가 있는지, 대각선 방향으로 같은 숫자가 있는지 탐색해야 하므로 3중 for 루프를 사용한다. 여기서 고려해야 할 점, 좌측 상단 꼭지점과 같은 거리에 있는 우측 상단 꼭지점, 좌측 하단 꼭지점과 우측 하단 꼭지점의 숫자가 같으면 정사각형을 이루므로 해당 정사각형의 넓이를 구한다. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; im.. 2022. 2. 8. [BAEKJOON] 10610번 30 이 문제에 대해서 나도 그렇고 여러 사람들이 오해하고 있는 부분이 있었다. 나는 입력된 숫자를 조합하여 30의 배수 중 가장 큰 수를 찾아야 하는 것으로 이해했다. 하지만 문제 해결법은 간단했다. 입력된 수의 조합으로 가장 큰 수를 만들고, 그 수가 30의 배수이면 되는 것이다. 따라서 입력받은 수를 하나씩 쪼개어 역순으로 정렬하면 예를들어 102는 210이 될 것이다. 이 210이 30의 배수이면 210을 출력한다. 아니라면 -1 출력한다. 이 문제를 통해 30의 배수를 구하는 방법을 새로이 알게 되었다. 만약 123의 수가 3의 배수인지 판별하려면 각 자리 수를 더했을 때 3의 배수이면 되는 것이다. 1+2+3=6이므로 6은 3의 배수이다. 즉, 123은 3의 배수가 된다. 이 문제는 30의 배수를 .. 2022. 2. 7. [BAEKJOON] 1475번 방 번호 입력받은 수를 한 문자씩 나누어 숫자와 상응하는 인덱스 번호의 위치의 값을 1씩 증가시킨다. 해당 숫자가 몇 개 나왔는지 누적시킨다. 6과 9는 하나의 숫자로 취급하면 간단하다. 0~8까지 저장할 수 있는 정수형 배열을 만든다. (9는 6에 함께 저장할 것이기 때문에 제외시킴) 배열 초기 모든 저장된 값은 0으로 초기화되어 있으므로 숫자 1이면 인덱스 1의 저장값을 1로 증가, 숫자 2이면 인덱스 2 저장값을 1로 증가시킨다. 배열 크기만큼 반복문을 돌려 누적값을 카운트한다. 누적된 값을 1씩 빼주면서 (6은 9와 함께 저장되기 때문에 2씩 빼줌) 배열에 저장된 모든 값이 0이하가 될 때까지 반복한다. 즉, 반복문 한 번이 플라스틱 한 세트가 된다. import java.io.BufferedReader;.. 2022. 2. 6. [BAEKJOON] 1436번 영화감독 숌 해당 문제는 부르트포스 알고리즘 문제로 분류되어있다. 초기 숫자 666부터 시작하여 1씩 증가시키면서 6이 연속으로 세 개 즉, '666'이 포함된 숫자를 발견한다면 N+1번째 영화의 제목으로 간주한다. 그렇게 입력 받은 숫자만큼 영화 제목이 만들어지면 반목문을 중단하여 출력한다. import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; public class Main { public static void main(String[] args) throws NumberFormatExc.. 2022. 2. 5. [BAEKJOON] 7568번 덩치 입력 받은 사람 수의 몸무게와 키를 이차원 배열에 저장한다. 경기 방식 중 리그 방식으로 한 번씩 비교하여 덩치가 큰지 작은지 판단한다. 일차원 rank 배열에 등수를 저장한다. rank 배열의 초기값은 1로 변경하여 다음 사람보다 덩치가 작다면 값을 1씩 증가시킨다. 덩치가 작다는 의미는 상대보다 등수가 낮다는 것이기 때문에 등수를 증가시키는 것이다. import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.util.Arrays; import java.uti.. 2022. 2. 3. [BAEKJOON] 2609번 최대공약수와 최소공배수 최대공약수 구하기 ※ 이 부분의 본문은 유클리드 호제법입니다. 똑같이 두 수 192와 72의 최대공약수를 이번에는 호제법으로 구하여 보자. 일단 192을 72로 나누어 나머지를 구한다. 192 = 72 * 2 + 48 이는 192을 72로 나누어 나온 나머지가 48라는 것을 의미한다. 이번에는 72을 나머지인 48로 나눈다. 72 = 48 * 1 + 24 이와 같은 연산을 나머지가 0이 될 때까지 반복한다. 48 = 24 * 2 + 0 나머지가 0이 되었으므로 연산을 중지한다. 이때, 나머지가 0이 되기 바로 직전의 연산에서의 나머지가 원래 두 수의 최대공약수가 된다. // 유클리드 호제법 (a를 b로 나눈 나머지가 0보다 클 때 까지 반복) static int gcd(int a, int b){ // 최.. 2022. 2. 2. 이전 1 ··· 12 13 14 15 16 17 18 ··· 20 다음