본문 바로가기

Coding Test/Step12. 브루스 포트

(6)
[Java] 6단계. 체스판 다시 칠하기 [2839번] 예제 입력118예제 출력14예제 입력24예제 출력2-1 예제 입력36예제 출력32예제 입력49예제 출력43예제 입력511예제 출력53  문제 접근그리디 알고리즘처럼 풀게 되면 다음과 같은 예시는 해결 불가21kg → 5kg 4개로 1kg 남아 -1을 출력하게 됨 원래 정답은 3kg 7개로 7이 되어야 함 문제 해결최소 봉지가 되려면 5kg을 최대한 많이 들고, 나머지를 3kg로 채워야 함N이 5로 나누어 떨어지면 그것이 최소 봉지 N이 5로 나누어 떨어지지 않을 경우 N / 5의 몫을 저장,  N - (몫 * 5) = 나머지 나머지가 3의 배수일 경우 (몫 + 나머지/3)를 저장하고 반복문 종료나머지가 3의 배수가 아니면 몫을 1개 차감하고 다시 반복슈도 코드N (kg 저장)count에 -1 저장if(N..
[Java] 5단계. 영화감속 숌 [1436번] https://www.acmicpc.net/problem/1436 예제 입력12예제 출력11666예제 입력23예제 출력22666 예제 입력36예제 출력35666예제 입력4187예제 출력466666예제 입력5500예제 출력5166699  문제 접근어떤 수든 간에 666이 들어가면 됨Ex) 10666, 16661 등  횟수가 정해지지 않아 while문 사용문제 해결횟수가 정해지지 않아 while문으로 num을 1씩 증가 시키면서 검증 target = 1num = 666num을 문자열로 변환 → 666 포함 시 target++target == N → 반복문 종료 → num 출력슈도 코드N (몇 번째 값을 찾을지 저장)target 1 저장num 666 저장while(target != N){ num 1증가 if(..
[Java] 4단계. 체스판 다시 칠하기 [1018번] 예제 입력18 8WBWBWBWBBWBWBWBWWBWBWBWBBWBBBWBWWBWBWBWBBWBWBWBWWBWBWBWBBWBWBWBW예제 출력11예제 입력210 13BBBBBBBBWBWBWBBBBBBBBBWBWBBBBBBBBBWBWBWBBBBBBBBBWBWBBBBBBBBBWBWBWBBBBBBBBBWBWBBBBBBBBBWBWBWBBBBBBBBBWBWBWWWWWWWWWWBWBWWWWWWWWWWBWB예제 출력212 예제 입력38 8BWBWBWBWWBWBWBWBBWBWBWBWWBWBWBWBBWBWBWBWWBWBWBWBBWBWBWBWWBWBWBWB예제 출력30예제 입력49 23BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB..
[Java] 3단계. 수학은 비대면 강의입니다. [19532번] 예제 입력11 3 -1 4 1 7예제 출력12 -1예제 입력22 5 8 3 -4 -11 예제 출력2-1 2 문제 접근a, b, c, d, e, f는 -999 ~ 999 사이의 값x = -999, y = -999부터 시작하여 각각 대입 문제 해결이중 반복문으로 해결 x = -999 ~ 999y = -999 ~ 999a * x + b * y = c이고 d * x + e * y = f일 때 반복문 종료슈도 코드a, b, c, d, e, f 값 저장for(x = -999 ~ 999까지 반복){ if(x != 0 && y != 0) break; for(y = -999 ~ 999까지 반복){ if(ax + by = c이고 dx + ey = f){ answerX(x 저장) answerY(y 저장) } }}..
[Java] 2단계. 분해합 [2231번] 예제 입력1216예제 출력1198문제 접근어떤 자연수 M + M의 각 자릿수 = N이라 할 때, M은 N의 생성자생성자는 없는 경우도 있고 그럴 경우 0을 출력문제 해결자릿수를 간편하게 구하기 위해 문자열로 입력 받아 .length() 함수로 자릿수 구하기각 자릿수의 최댓값은 9이므로 생성자의 최솟값은 N - N 자릿수 * 9생성자가 나오는 즉시 종료슈도 코드N (어떠한 수 문자열로 저장)constructor(생성자를 저장한 변수 선언)start(N - N의 자릿수 * 9)for(i = start ~ N까지 반복){ sum (i값 저장) tmp (i값 저장) while(tmp % 10 != 0){ sum += tmp % 10 tmp/=10 } if(sum==N){ constructor = i; b..
[Java] 1단계. 블랙잭 [2798번] 예제 입력15 215 6 7 8 9예제 출력121예제 입력210 50093 181 245 214 315 36 185 138 216 295예제 출력2497문제 접근카드의 개수 N은 100개이하시간 복잡도 O(N^3)으로 풀더라도 1000000이므로 0.01초로 시간 제한 문제 없음N개 중 3개를 합한 값이 M이하인 것중 최댓값을 구하는 문제문제 해결N[0] + N[1] + N[2] ≤ M → max에 저장N[0] + N[1] + N[3] ≤ M → max와 비교하여 더 큰 값 max에 저장...N[0] + N[1] + N[N.length-1] ≤ M → 더 큰 값 max에 저장3중 반복문 사용i = 0 / i j = i + 1 / j k = j + 1 / k 슈도 코드N(카드 개수) 저장, M(목표 값) ..