Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- Dinosaur
- nodejs
- MongoDB
- Python
- game
- Queue
- dfs
- Bull
- 게임
- react
- flask
- class
- Sequelize
- Nest.js
- typeORM
- cookie
- GIT
- nestjs
- MySQL
- jest
- AWS
- mongoose
- 자료구조
- JavaScript
- 공룡게임
- Express
- OCR
- 정렬
- TypeScript
Archives
- Today
- Total
포시코딩
[프로그래머스][Lv.0] 가위 바위 보 본문
728x90
문제
https://school.programmers.co.kr/learn/courses/30/lessons/120839
내 풀이
def solution(rsp):
win = ['5', None, '0', None, None, '2']
return ''.join([win[int(x)] for x in rsp])
if문이 세로로 길게 생기는 것을 극혐해서 여러 방법을 찾다가
Javascript에서
let arr = [];
arr[2] = 0
arr[0] = 5
arr[5] = 2
console.log(arr[2])
console.log(arr[0])
console.log(arr[5])
이렇게 하면 지정한 index에 값이 매겨지고 그 외 인덱스에는 <empty item>이 들어오던걸 생각해
파이썬에서는 똑같이는 되지 않아 직접 win list를 만들어주었고 빈 값에 대해 None으로 명시한 후
for문을 돌아 해당하는 index의 값을 리턴해 풀었다.
다른 풀이 A
def solution(rsp):
d = {'0':'5','2':'0','5':'2'}
return ''.join(d[i] for i in rsp)
list에서 생각이 그쳤는데 dictionary로 위와같이 만든다면 값을 찾을 때 int(x)를 하지 않아도 되고
무엇보다 가위바위보 뿐만 아니라 응용되어
많은 수의 숫자에 대해 대응하는 값을 제시할 때
None에 대한 index를 생략할 수 있는점이 좋아보인다.
다른 풀이 B
def solution(rsp):
rsp =rsp.replace('2','s')
rsp =rsp.replace('5','p')
rsp =rsp.replace('0','r')
rsp =rsp.replace('r','5')
rsp =rsp.replace('s','0')
rsp =rsp.replace('p','2')
return rsp
2, 5, 0에 대해 다른 문자로 바꿔준 후 다시 대응하는 문자로 바꿔주는 방법인데
단순하지만 효과적이고 빠른 방법이다.
728x90
'자료구조알고리즘 > 문제풀이' 카테고리의 다른 글
[프로그래머스][Lv.0] 외계행성의 나이 (0) | 2023.01.03 |
---|---|
[프로그래머스][Lv.0] 최댓값 만들기 (2) (0) | 2023.01.03 |
[프로그래머스][Lv.0] 암호 해독 (0) | 2022.12.31 |
[프로그래머스][Lv.0] 개미 군단 (0) | 2022.12.31 |
[프로그래머스][Lv.0] 순서쌍의 개수 (1) | 2022.12.28 |