* 코딩인터뷰시 기업들에서 널리 활용중인 해커랭크(HackerRank)의 Python 문제들 중 재미있는 문제들만 모아봤습니다.
1. 문제
- Valleys를 몇번이나 내려갔다 왔는가를 카운팅하는 문제
- Valleys를 오역하여 산맥으로 읽어서 헷갈렸던 문제다. 벨리는 협곡!
- 따라서 sea level이 마이너스로 내렸다가 0으로 올라오는 횟수를 카운팅 해주면 된다.
- '문제를 잘 이해하기'는 생각보다 더 중요한듯하다. 어제 읽었던 종만북에서 말했듯, 문제를 잘 푸는 첫 단계는 문제를 잘 이해하는 것이다.
2. 정답
def countingValleys(n, s):
cnt = 0; altitude = 0;
for isUpDown in s :
if isUpDown is 'U':
if altitude == -1:
cnt += 1
altitude += 1
elif isUpDown is 'D':
altitude += -1
return cnt
- 위의 문제에서 해석했듯이, 'Valley를 얼마나 갔다왔는가?'를 카운팅해주기 위해서는 해수면 아래, 즉 마이너스로 몇번이나 내려갔다가 0으로 돌아왔는지를 세어주면 된다.
- 주어지는 Input 값은 U 혹은 D이기 때문에, 이를 +1 과 -1로 치환해주어 순회시마다의 sea level을 계산해주며 0 레벨로 돌아온 횟수를 cnt에 카운팅해준다.
- 종만북을 어제부터 읽기 시작했는데, 첫장에서 PS를 다루는 마음가짐에 대해서 꽤 긴 지면을 할애하여 설명한다. 그 중 아하 했던 것 중 하나가 변수명을 직관적으로 만들어주기 부분이었다. 지금까지는 순회 시에 쓰이는 임시변수등을 i, j, temp 이런식으로 자주쓰는 것들 마구 써주고 넘어갔는데, 이런식으로 작명하게되면 추후에 코드를 읽을 때 헷갈릴 수 있다는 말을 한다.
- 여기에 영향을 받아 변수명을 조금 더 예쁘게(?) 만들어주었다. 고도는 altitude, Up Down이 들어가는 순회 변수에는 isUpDown.. 이런 작은 변화들을 많이 쌓아나가야겠다.
3. 결과
해커랭크(HackerRank)의 Python for Interview'를 풀며 정리한 글입니다.
부족한 블로그에 방문해 주셔서 감사합니다.
잘못된 내용 수정 피드백은 댓글로 적어주세요.
감사합니다 :-)
반응형
'기초 튼튼 > 코테준비' 카테고리의 다른 글
[코테준비] Python 해커랭크(HackerRank) 문제풀이 - 4 (2D Array) (1) | 2020.06.01 |
---|---|
[코테준비] Python 해커랭크(HackerRank) 문제풀이 - 3 (Jumping on the Clouds) (0) | 2020.05.22 |
[코테준비] Python 해커랭크(HackerRank) 문제풀이 - 1 (Socks Merchant) (0) | 2020.05.19 |
[코테준비] SQL 해커랭크(HackerRank) 문제풀이 - 피벗 - 6 (0) | 2020.05.16 |
[코테준비] SQL 해커랭크(HackerRank) 문제풀이 - 직업정보 포메팅 - 5 (0) | 2020.05.16 |