반응형
문제 설명
가위는 2 바위는 0 보는 5로 표현합니다. 가위 바위 보를 내는 순서대로 나타낸 문자열 rsp가 매개변수로 주어질 때, rsp에 저장된 가위 바위 보를 모두 이기는 경우를 순서대로 나타낸 문자열을 return하도록 solution 함수를 완성해보세요.
제한사항
- 0 < rsp의 길이 ≤ 100
- rsp와 길이가 같은 문자열을 return 합니다.
- rsp는 숫자 0, 2, 5로 이루어져 있습니다.
입출력 예
rsp | result |
"2" | "0" |
"205" | "052" |
입출력 예 #1
"2"는 가위이므로 바위를 나타내는 "0"을 return 합니다.
입출력 예 #2
"205"는 순서대로 가위, 바위, 보이고 이를 모두 이기려면 바위, 보, 가위를 순서대로 내야하므로 “052”를 return합니다.
소스코드
Solution.c
#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
#include <string.h>
// 파라미터로 주어지는 문자열은 const로 주어집니다. 변경하려면 문자열을 복사해서 사용하세요.
char* solution(const char* rsp) {
// return 값은 malloc 등 동적 할당을 사용해주세요. 할당 길이는 상황에 맞게 변경해주세요.
char* answer = (char*)malloc(strlen(rsp));
int i;
for(i=0; i<strlen(rsp); i++){
if(rsp[i] =='0')
answer[i] ='5';
else if(rsp[i]=='2')
answer[i] = '0';
else if(rsp[i]=='5')
answer[i] ='2';
}
answer[i] ='\0';
return answer;
}
풀이
rsp 크기 만큼 answer의 크기를 동적할당 해주고, rsp의 값이 무엇이 나오냐에 따라서 출력되는 값을 지정해주어 원하는 결과가 나오게 만들어준다.
마지막에 answer[i] = '/0'은 마지막 i번째의 answer 값이 쓰레기 값이 들어가 있기에 '\0' 즉, NULL값으로 초기화 시켜주는 것이다. 이를 안해주면 앞까지는 원하는 값이 나오지만 그뒤에는 쓰레기값이 같이 출력될 것이다.
출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges
코딩테스트 연습 | 프로그래머스 스쿨
개발자 취업의 필수 관문 코딩테스트를 철저하게 연습하고 대비할 수 있는 문제를 총망라! 프로그래머스에서 선발한 문제로 유형을 파악하고 실력을 업그레이드해 보세요!
school.programmers.co.kr