- Today
- Total
- spring
- Algorithm
- MST
- leetcode
- OOP
- ์๋ฃ๊ตฌ์กฐ
- tree
- PS
- CS
- ๋ฌธ๋ฒ
- ๋ฒจ๋งํฌ๋
- ๋ฐ์ดํฐ๋ฒ ์ด์ค
- ์๋ฐ์์ ์
- pytorch
- array
- Graph
- ๋ค์ต์คํธ๋ผ
- dp
- ์ธํด
- ์๋ฐ
- ๊ตฌํ
- database
- ๊ทธ๋ฆฌ๋
- ๋ฐฑ์๋
- java
- ์์์ ๋ ฌ
- ๋ฐฑ์ค
- ์กธ์ ์ํ
- ํ๋ก๊ทธ๋๋จธ์ค
- BFS
Partially Committed
[2018 KAKAO BLIND RECRUITMENT] (1์ฐจ) ๋คํธ ๊ฒ์ ๋ณธ๋ฌธ
[2018 KAKAO BLIND RECRUITMENT] (1์ฐจ) ๋คํธ ๊ฒ์
WonderJay 2022. 7. 6. 12:26https://school.programmers.co.kr/learn/courses/30/lessons/17682
๋ฌธ์ ์์ ์ง์ํ ๊ทธ๋๋ก ๊ตฌํํ๊ธฐ๋ง ํ๋ฉด ๋๋ค.
string ๋ฌธ์์ด๋ก ์ ๊ณต๋๋ dartResult ์ ๋ฐ๋ผ์ ๋คํธ๋ฅผ 3๋ฒ ๋์ก์ ๋์ ์ต์ข ๋์ ์ ๋ฆฌํดํ๋ฉด ๋๋๋ฐ
n ๋ฒ์งธ ๋คํธ๋ฅผ ๋์ก์ ๋, n-1 ๋ฒ์งธ ๋คํธ๋ฅผ ๋์ ธ ์ป์ ์ ์๋ฅผ ๋ฐ๊พธ์ด์ผ ํ๋ ๊ฒฝ์ฐ๊ฐ ์ข ์ข ๋ฐ์ํ๋ฏ๋ก
stack<int> score ์ ์ ์ธํ์ฌ ๊ฐ๊ฐ์ ํ์ฐจ์ ์ป์ ์ ์๋ฅผ ์ฐจ๋ก๋๋ก push ํด์ฃผ์๋ค.
๊ทธ๋ฆฌ๊ณ ํ์์ ๋ฐ๋ผ score ์ top ์ ์ ๊ทผํ๊ณ , ์กฐ๊ฑด์ ๋ง๋๋ค๋ฉด top ์ ๊ฐ์ ธ์์ ๊ฐ์ ์์ ํ ๋ค์ ๋ค์ push ํ๋ค.
์ฃผ์ํด์ผ ํ ์ ์ ์ ์์ ๋ฒ์๊ฐ 0~10 ์ด๋ฏ๋ก 10 ์ ๋ํ ์์ธ ์ฒ๋ฆฌ๋ฅผ ์ ํด์ฃผ์ด์ผ ํ๋ค๋ ๊ฒ์ด๋ค.
๊ทธ๋ฆฌ๊ณ ์คํ์์ ์ํํด์ผ ํ ๋, stack ์ size ๊ฐ 1์ธ ๊ฒฝ์ฐ์ ๋ํด์๋ ์์ธ ์ฒ๋ฆฌ๊ฐ ํ์ํ๋ค.
[C++]
#include <string>
#include <stack>
using namespace std;
void star(stack<int> & score){
// ์คํ์
int point = 0;
int prev_point = 0;
if(score.size() == 1)
{ // 1ํ์ฐจ
point = score.top(); // stack ์ top ์ ๊บผ๋ด์
score.pop();
point = point*2; // ์ ์๋ฅผ 2๋ฐฐ๋ก
score.push(point);
return;
}
else
{
point = score.top();
score.pop();
prev_point = score.top();
score.pop();
point = point*2;
prev_point = prev_point*2;
score.push(prev_point);
score.push(point);
return;
}
}
void acha(stack<int> & score){
// ์์ฐจ์
int point = 0;
point = score.top(); // stack ์ top ์ ๊บผ๋ด์
score.pop();
score.push(-point);
return;
}
void get_point(stack<int> & score, const char region)
{
int point = score.top();
score.pop();
if(region == 'S')
{
// single
// do nothing
}
else if(region == 'D')
{
// double
point = point*point;
}
else if(region == 'T')
{
// triple
point = point*point*point;
}
score.push(point);
point = 0;
return;
}
int solution(string dartResult) {
int answer = 0;
stack<int> score;
int point = 0;
bool flag = false;
for(int i = 0 ; i < dartResult.size(); i ++)
{
if(isdigit(dartResult[i]) == true)
{
point = dartResult[i] - '0';
if(score.top() == 1 && point == 0)
{
score.pop();
score.push(10);
continue;
}
else
{
score.push(point);
continue;
}
}
else if(dartResult[i] == 'S' || dartResult[i] == 'D' || dartResult[i] == 'T')
{
get_point(score, dartResult[i]);
}
else if(dartResult[i] == '*')
{
star(score);
}
else if(dartResult[i] == '#')
{
acha(score);
}
}
while(score.empty() != true)
{
answer += score.top();
printf("score = %d\n", score.top());
score.pop();
}
return answer;
}
'๐ฅ Algorithm || ๋ฌธ์ ํ์ด > PS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ๋ก๊ทธ๋๋จธ์ค] ๋ฌธ์์ด ๋ด ๋ง์๋๋ก ์ ๋ ฌํ๊ธฐ (0) | 2022.07.06 |
---|---|
[ํ๋ก๊ทธ๋๋จธ์ค] ๊ฐ์ ์ซ์๋ ์ซ์ด (0) | 2022.07.06 |
[ํ๋ก๊ทธ๋๋จธ์ค] ๊ฐ์ด๋ฐ ๊ธ์ ๊ฐ์ ธ์ค๊ธฐ (0) | 2022.07.05 |
[2018 KAKAO BLIND RECRUITMENT] (1์ฐจ) ๋น๋ฐ์ง๋ (0) | 2022.07.05 |
[์ํด๋ฆฌ ์ฑ๋ฆฐ์ง] ๋ถ์กฑํ ๊ธ์ก ๊ณ์ฐํ๊ธฐ (0) | 2022.07.05 |