본문 바로가기
코딩 테스트/[c언어] cos pro 2급 기출문제

[No.41] 사다리 게임의 승자를 구해주세요!/ cos pro 2급 c언어 기출 문제

by M개발자 2021. 5. 23.
반응형

사다리 게임의 승자를 구해주세요!


문제 설명

출처 : groom edu cos pro 2급 기출문제 5차 문제 1


예시

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);
}

cos pro 2급 기출문제

github

 

구름 goormedu COS PRO 2급 기출문제 - C언어

[5차] 문제1) 사다리 게임의 승자를 구해주세요!

 

 

반응형

댓글