반응형
사다리 게임의 승자를 구해주세요!
문제 설명
예시
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) 사다리 게임의 승자를 구해주세요!
반응형
'코딩 테스트 > [c언어] cos pro 2급 기출문제' 카테고리의 다른 글
[No.43] 벌금을 세금 내듯 내면 안돼요. 벌금 구하기! / cos pro 2급 c언어 기출 문제 (0) | 2021.05.24 |
---|---|
[No.42] 공강시간 구하기 / cos pro 2급 c언어 기출 문제 (0) | 2021.05.23 |
[No.40] XX시험 합격자 수 구하기 / cos pro 2급 c언어 기출 문제 (1) | 2021.05.22 |
[No. 38] / cos pro 2급 c언어 기출 문제 (0) | 2021.05.21 |
[No. 37] 오른 점수와 떨어진 점수 구하기 / cos pro 2급 c언어 기출 문제 (0) | 2021.05.21 |
댓글