-
[COS PRO 1급 기출문제 - Java] 1-5 소용돌이 수Algorithm/COS PRO 1급 기출문제 2020. 12. 20. 19:43
문제 유형
solution 함수 구현
문제
12345678910111213141516171819202122import java.util.*;class Main {public int solution(int n) {int answer = 0;// 소스 코드를 입력하세요.return answer;}public static void main(String[] args) { Main sol = new Main();int n1 = 3;int ret1 = sol.solution(n1);System.out.println("solution 함수의 반환 값은 " + ret1 + " 입니다.");int n2 = 2;int ret2 = sol.solution(n2);System.out.println("solution 함수의 반환 값은 " + ret2 + " 입니다.");}}cs 풀이
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657import java.util.*;class Main {int[] dx = {0,1,0,-1};int[] dy = {1,0,-1,0};public int solution(int n) {int answer = 0;int[][] soyongdoli = new int[n][n];int turn = (n%2 == 0)? n/2: (n/2 + 1);int cx, cy, nx, ny;int cur = 1;for(int i = 0; i< turn; i++){int d = 0;cx = i;cy = i;soyongdoli[cx][cy] = cur++;while(d < 4){int nx = cx + dx[d];int ny = cy + dy[d];if(nx >= n || nx < 0 || ny >= n || ny < 0 || soyongdoli[nx][ny] > 0){d++;continue;}soyongdoli[nx][ny] = cur++;cx = nx;cy = ny;}}// print(soyongdoli);answer = getResult(soyongdoli);return answer;}public int getResult(int[][] arr){int sum = 0;for(int i = 0; i<arr.length; i++){sum += arr[i][i];}return sum;}public void print(int[][] arr){for(int i = 0; i<arr.length; i++){for(int j = 0; j<arr[i].length; j++){System.out.print(arr[i][j] + " ");}System.out.println();}}cs 'Algorithm > COS PRO 1급 기출문제' 카테고리의 다른 글
[COS PRO 1급 기출문제 - Java] 1-7 병합 and 정렬 (0) 2020.12.21 [COS PRO 1급 기출문제 - Java] 1-6 체스의 나이트 (0) 2020.12.21 [COS PRO 1급 기출문제] 1-4 타임머신 (0) 2020.12.20 [COS PRO 1급 기출문제 - Java] 1-3 계산기 by 문자열 (0) 2020.12.20 [COS PRO 1급 기출문제 - Java] 1-2 해밍 거리 구하기 (0) 2020.12.20