본문 바로가기
ⓒⓞⓓⓘⓝⓖⓣⓔⓢⓣ/ⓒ

[프로그래머스/C언어] 가위 바위 보

by heaven00 2023. 11. 5.
728x90

 

 

📌 문제 링크

https://school.programmers.co.kr/learn/courses/30/lessons/120839

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

 

👩‍💻 전체코드

#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>

// 파라미터로 주어지는 문자열은 const로 주어집니다. 변경하려면 문자열을 복사해서 사용하세요.
char* solution(const char* rsp) {
    // return 값은 malloc 등 동적 할당을 사용해주세요. 할당 길이는 상황에 맞게 변경해주세요.
    char* answer = (char*)malloc(strlen(rsp));
    for(int i = 0; i< strlen(rsp); i++) {
        if(rsp[i] == '2') {
            answer[i] = '0';
        }  else if(rsp[i] == '0') {
            answer[i] = '5';
        } else {
            answer[i] = '2';
        }
    }
    answer[strlen(rsp)] = NULL;
    
    return answer;
}

해당 문제에서는 동적할당을 잘 해주는 부분에 가장 초점을 두었다.

malloc의 특징에 따라, 젤 마지막에  NULL값을 넣어줘서 쓰레기 값이 들어가는 것을 방지해줘야했다.

 

또한, str -> int 형으로 전환하여 while문을 통해 문제를 풀어야하나? 라고 생각했지만,

str형을 보존하면서 하나하나 값을 비교하여 answer에 값을 넣어주는 방식으로 더 쉽게 풀이할 수 있었다!

 

728x90

댓글