https://programmers.co.kr/learn/challenges
--풀이
완전 탐색 문제, key point: '*'을 처리하는 방법, S,D,T 처리 방법
1. S, D, T 처리 로직
S,D,T는 숫자 뒤에 나오기 때문에, if 숫자면 더해줬던 n을 1제곱, 2제곱, 3제곱해주면 된다
n=''을 사용한 이유: 문자열과 숫자를 다르게 생각해줘야하는데, 앞에 있는 숫자를 다루기 편하라고, 문자와 가장 가까운 인덱스에 있는 숫자를 담아 둔 것이다
-> 그래서 처리 후에는 n=''로 초기화 해줘야함
2. '*' 처리 방법
먼저 *이 처음에 올수도 있다는 조건을 봤을 때, 인덱스로 접근하려고 해서 고생했다.
인덱스 번호가 아니라 len으로 접근해서 len(score)>1 로 설정하여 최소한 숫자 2개가 있는지, 아니면 앞에 오는지를 구별해주었다.
+ #이 *에도 적용된다는 말 -> 즉 -1이 2배가 될 수 있다는 말은 헷갈리게 하려는 fake 였던 것 같다
*과 #은 그저 x 2, x -1로 치환해서 생각하면 조금 더 쉽게 풀 수 있었을 것 같다
완전 탐색 문제가 나오면 당황하지 않고 조건 하나하나씩을 비교해보자
개인적인 생각으로는 for문은 간결하게, if 문으로 조건을 구별해주고, n과 같이 변수를 잘 설정, 초기화 해보자
'알고리즘' 카테고리의 다른 글
[프로그래머스 - 가장 큰 수][파이썬] - 7일차 (0) | 2022.06.01 |
---|---|
[프로그래머스 - 신규 아이디 추천][파이썬] -7일차 (0) | 2022.06.01 |
[프로그래머스 - 소수 만들기][파이썬] -6일차 (0) | 2022.05.31 |
[프로그래머스 -하샤드 수][파이썬]-6일차 (0) | 2022.05.31 |
[프로그래머스 -콜라츠 추측][파이썬]-6일차 (0) | 2022.05.31 |