본문 바로가기

Coding Test

(131)
[Java] 평균은 넘겠지 [4344번] https://www.acmicpc.net/problem/4344예제 입력155 50 50 70 80 1007 100 95 90 80 70 60 503 70 90 803 70 90 819 100 99 98 97 96 95 94 93 91 예제 출력140.000%57.143%33.333%66.667%55.556%문제 접근각 케이스마다의 평균을 구해야 함학생들의 각 점수가 평균을 초과하는 학생만 카운트평균을 초과한 학생 / 총 학생 수 ⇒ 소수점 셋째자리 표현문제 해결각 케이스마다 배열을 생성하여 ArrayList에 저장각 케이스의 평균을 배열로 저장평균과 각 점수를 비교하여 초과하는 학생 수만 카운트평균 초과 학생 / 배열 길이 * 100 ⇒ 소수점 셋째자리 표현슈도 코드T (테스트 케이스 개수 저장)av..
[Java] 2007년 [1924번] https://www.acmicpc.net/problem/1924예제 입력11 1예제 출력1MON예제 입력23 14예제 출력2WED예제 입력39 2예제 출력3SUN예제 입력412 25예제 출력4TUE 문제 접근금일의 다음 주 같은 요일은 +7일월요일 ⇒ 1/1, 1/8, 1/15, 1/22, 1/29, 2/5화요일 ⇒ 1/2, 1/9, 1/16, 1/23, 1/30, 2/6수요일 ⇒ 1/3, 1/10, 1/17, 1/24, 1/31, 2/7목요일 ⇒ 1/4, 1/11, 1/18, 1/25, 2/1금요일 ⇒ 1/5, 1/12, 1/19, 1/26, 2/2토요일 ⇒ 1/6, 1/13, 1/20, 1/27, 2/3일요일 ⇒ 1/7, 1/14, 1/21, 1/28, 2/4문제 해결배열 week = [일,월,화,..
[Java] 7단계. 주사위 세개 [2480번] https://www.acmicpc.net/problem/2480 예제 입력13 3 6예제 출력11300예제 입력22 2 2 예제 출력212000예제 입력36 2 5예제 출력3600 문제 접근주사위의 눈 (1~6)으로 푸는 문제같은 눈이 2개일 경우 같은 눈의 값이 몇 인지 알아야 함모두 다른 눈일 경우 가장 큰 값을 구해야 함 문제 해결Counting sort를 이용하여 문제를 풀 수 있을 것 같음 각 나온 수의 인덱스를 1씩 증가 시킴특정 인덱스의 값이 3일 경우 같은 눈 3특정 인덱스의 값이 2일 경우 같은 눈 2인덱스의 Max 값이 1일 경우 가장 높은 인덱스 출력슈도 코드A[7] 배열 생성for(i = 0 ~ 2까지 반복){ A 배열에 주사위 눈 인덱스 1증가}max(A배열의 최대값 저장)dic..
[Java] 2단계. 대표값2 [2587번] https://www.acmicpc.net/problem/2587 예제 입력11040306030예제 출력13430문제 접근수의 개수는 5개로 고정시작 복잡도가 무엇이든 크게 상관 없음문제 해결입력 받은 값을 Arrays.sort() 함수를 이용하여 정렬stream을 이용하여 합계 계산 후 평균 계산5개 중 중앙값이므로 index = 2번의 값 출력 슈도 코드A[5]배열 선언for(i = 0 ~ 4){ A 배열에 값 저장}A배열 정렬avg = A배열 Stream으로 sum 계산 / 5avg 출력A[2] 출력코딩하기public static void main(String[] args) { Scanner scan = new Scanner(System.in); int[] A = new int[5]; ..
[Java] 1단계. 수 정렬하기 [2750번] https://www.acmicpc.net/problem/2750 예제 입력1552341예제 출력112345문제 접근데이터의 수는 최대 1,000개로 시간 복잡도가 O(N^2)여도 문제가 되지 않음 시간 복잡도 O(N^2) ⇒ 선택 정렬, 삽입 정렬, 버블 정렬문제 해결O(N^2) 중에서도 그나마 빠른 삽입 정렬로 구현0번방은 비교할 것이 없으므로 1번 index부터 시작target 이전의 인덱스가 target보다 값이 크다면, target 위치에 이전 인덱스의 값과 스왑target 이전의 익덱스가 target보다 값이 작다면 그 자리 그대로슈도 코드N (숫자 개수 저장)A[] (배열 선언 및 초기화)for(i = 0 ~ N까지 반복){ A 배열에 데이터 저장}insertion_sort 함수 호출A배열 ..
[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..