2018 카카오 블라인드 공채 1차 코테 문제
5시간을 잡고 실전처럼 진행하였으며 코드의 최적화나 알고리즘은 정확하지 않음.
코딩테스트 연습 - [1차] 다트 게임 | 프로그래머스 (programmers.co.kr)
코딩테스트 연습 - [1차] 다트 게임
programmers.co.kr
1번문제로 약 10분 정도 걸렸다.
문자열 처리 문제였으며 딱히 필요한 알고리즘은 없었다.
점수가 10일때 처리를 따로 해주어야 했다.
string 형태에선 10은 2칸이기 때문에 1일때 뒤에 0인지 아닌지 판단하여 점수를 계산하고 인덱스처리를 해주어야했다.
옵션에 * 가 직전의 수도 변경하므로 직전의 수도 저장 해두어야 풀 수 있다.
그 외에는 그냥 조건에 따라 풀면 된다.
#include <string>
using namespace std;
int solution(string s)
{
int answer = 0;
int temp = 0, prev = 0;
for (int i = 0; i < s.size(); i++)
{
if (s[i] == '1')
{
if (s[i + 1] == '0')
{
i++;
temp = 10;
}
else
temp = 1;
}
else
temp = s[i] - '0';
if (s[i + 1] == 'D')
temp *= temp;
else if (s[i + 1] == 'T')
temp *= temp * temp;
i++;
if (s[i + 1] == '*')
{
answer += prev;
temp *= 2;
i++;
}
else if (s[i + 1] == '#')
{
temp *= -1;
i++;
}
answer += temp;
prev = temp;
}
return answer;
}
'Coding_Test > 2018_KAKAO_BLIND' 카테고리의 다른 글
[2018 카카오 블라인드 공채] 뉴스 클러스터링 (C++) (0) | 2022.04.30 |
---|---|
[2018 카카오 블라인드 공채] 셔틀버스 (C++) (0) | 2022.04.30 |
[2018 카카오 블라인드 공채] 프렌즈4블록 (C++) (0) | 2022.04.30 |
[2018 카카오 블라인드 공채] 캐시 (C++) (0) | 2022.04.30 |
[2018 카카오 블라인드 공채] 비밀지도 (C++) (0) | 2022.04.30 |