코딩 테스트/[c언어] cos pro 2급 기출문제
[No.41] 사다리 게임의 승자를 구해주세요!/ cos pro 2급 c언어 기출 문제
M개발자
2021. 5. 23. 15:30
반응형
사다리 게임의 승자를 구해주세요!
문제 설명
예시
ladders | ladders_len | win | return |
{{1, 2}, {3, 4}, {2, 3}, {4, 5}, {5, 6}} | 5 | 3 | 1 |
코드 해석 및 전체 코드
유추
1. for문 안 temp에 player[ladders[i][0] -1]값을 넣는다.
2. answer에 player[win - 1]을 넣는 걸로 player[2]의 값이 1이 됨을 알 수 있다.
answer ) 승리하는 사람의 시작 위치를 return 할 변수
player[6] ) 6명이 사다리 게임을 할 때, 몇 번째 위치에서 시작하는 사람이 상품을 타는지.
→ 배열의 원소로 도착지점의 player의 시작 위치가 들어간다. ( player[1]은 1에 도착하는 사람의 시작 위치 )
for ) 0 ~ ladders_len - 1까지 반복
temp에 player[ladders[i][0] - 1](1)을 담는다.
( 1 )의 값이 temp에 들어갔으므로 ( 1 )에 다른 값을 넣을 수 있다.
( 1 )에 player[ladders[i][0]]( 2 )의 값을 넣는다.
( 2 )에는 tmep( = ( 1 ))값을 넣는다.
정렬하는 방식으로 사다리를 탈 때마다 위치를 바꿔주는 방식이다.
#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
int solution(int ladders[][2], int ladders_len, int win) {
int answer = 0;
int player[6] = { 1, 2, 3, 4, 5, 6 };
for (int i = 0; i < ladders_len; i++) {
int temp = player[ladders[i][0] - 1];
player[ladders[i][0] - 1] = player[ladders[i][0]];
player[ladders[i][0]] = temp;
}
answer = player[win - 1];
return answer;
}
int main() {
int ladders[5][2] = { {1, 2}, {3, 4}, {2, 3}, {4, 5}, {5, 6} };
int ladders_len = 5;
int win = 3;
int ret = solution(ladders, ladders_len, win);
printf("solution 함수의 반환 값은 %d 입니다.\n", ret);
}
구름 goormedu COS PRO 2급 기출문제 - C언어
[5차] 문제1) 사다리 게임의 승자를 구해주세요!
반응형