[Programmers] #120839 - 가위 바위 보 [Java][C++][Python]
가위바위보를 낸 순서를 모두 이기는 경우로 바꾸는 워밍업 문제.
[Programmers] #120839 - 가위 바위 보 [Java][C++][Python]
1. 아이디어
가위(2), 바위(0), 보(5)를 숫자로 표현한 문자열 rsp가 주어질 때, 각 문자를 그 패를 이기는 값으로 바꾸면 되는 문제다. 바위(0)를 이기는 패는 보(5), 가위(2)를 이기는 패는 바위(0), 보(5)를 이기는 패는 가위(2)이므로, rsp를 한 글자씩 순회하며 대응되는 값으로 치환해 새 문자열을 만들면 된다.
2. 복잡도
| 접근 | 시간 | 공간 |
|---|---|---|
| 풀이 | $O(N)$ | $O(N)$ |
($N$ = rsp의 길이)
3. 코드
풀이 [Java][C++][Python]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
class Solution {
public String solution(String rsp) {
StringBuilder sb = new StringBuilder();
for (char c : rsp.toCharArray()) {
if (c == '0') {
sb.append("5");
} else if (c == '2') {
sb.append("0");
} else {
sb.append("2");
}
}
return sb.toString();
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <bits/stdc++.h>
using namespace std;
string solution(string rsp) {
string s;
for (char c : rsp) {
if (c == '0') {
s += '5';
} else if (c == '2') {
s += '0';
} else {
s += '2';
}
}
return s;
}
1
2
3
4
5
6
7
8
9
10
11
def solution(rsp):
lst = []
for c in rsp:
if c == "0":
lst.append("5")
elif c == "2":
lst.append("0")
else:
lst.append("2")
return "".join(lst)
This post is licensed under CC BY 4.0 by the author.