1. 오늘도 가볍게 문제풀이로 시작
시험보는 날이라 너무 무리하지 않고 그리디 알고리즘으로 하루 시작하기.
코드블럭은 언제나 접어두기
1) 내 풀이
a, b = map(int, input().split())
cnt = 0
while a != 1:
if a % b != 0:
a -= 1
cnt += 1
else:
a /= b
cnt += 1
print (cnt)
음... 책에서 단순한 풀이라고 소개한 예제랑 비슷하면서도 다르네. 어쨌든. 이번에도 100억 이상의 큰 수를 고려하면 이 방식으로 계산하면 너무 오래 걸린다.
2) 책 풀이
a, b = map(int, input().split())
cnt = 0
while True:
# 먼저 나눠 떨어지는 수를 빼서 차를 구한 다음 cnt(횟수)에 더해주기
target = (a // b) * b
cnt += (a - target)
# a에 나눠 떨어지는 수 대입
a = target
if a < b:
break
cnt += 1
a //= b
cnt += (a - 1)
print (cnt)
와... 진짜... 천재적이다... a=25, b=13 일 경우 내 방식대로 했다면 13의 배수가 될 때까지 12번을 돌며 1씩 뺐을텐데, 이 방식대로 하면 한번에 그 차를 좁힐 수 있다. 세상에...
2. 구현
구현 유형의 문제는 풀이를 떠올리기는 쉽지만 소스코드로 옮기기는 어려운 문제들. 이취코 책에서는 완전탐색(dfs/bfs...?)과 시뮬레이션이 구현의 핵심이 되는 경우가 많다고 했다... 오... 어쩐지... dfs/bfs로 오면서 이해는 잘 됐는데 막상 이걸 코드로 옮기는게 어려웠어... 너무나 당연했던 것
3. 시험
프로그래머스 2단계 난이도 문제였는데... 어... 풀었다...? 어? 왜 풀 수 있었던거지?
근데 문제가 두개인데 한개 풀고 나니까 나머지 한개는 힘빠지고 건드리고 싶지 않아졌다. 음... 에너지가 바닥난건가? 어쨌든 그래서 두번째 문제는 트리 그려놓고 재귀로 접근해야지~ 생각만 하고는 손 놓고 있었다.
4. 밍글
친해지길 바래 이벤트가 있었다! 재미는 있었는데, 사람들과 친해졌는지는 잘 모르겠다. 어쨌든, 모르는 사람들과 웃고 떠들면서 말도 섞으니 좋았다. 내일이면 이제 조도 바뀌는데 오늘 밍글이 도움이 됐으면 좋겠다.
5. 생각
어제 일지 다시 읽어보면서 문득 느낀건데... 매니저님 진짜 대단하시다. 나는 솔직히 일 잘하는 것도 중요하지만, 일 잘하는것보다 더 힘든게 좋은 사람 되는거라고 생각한다. 자기 관리가 철저하고, 자기 성장도 챙기면서 동시에 다른 사람들에게도 잘 해주는게 진짜 어려운건데... 이걸 매니저님은 하고 계시네. 음...!
언제나 그렇지만, 사실 공부하고 있을 때가 힘들면서도 제일 편할 때다. 이럴 때 바로 옆에서 누굴 보게 되느냐가 정말 중요한데 이 시기에 매니저님들 같은 분들을 보면서 힘낼 수 있다는게 진짜 큰 축복이다.
개발 시작하기 정말 잘 했다! 솔직히 따라가려니 진짜 너무너무 힘들지만 그래도 매일매일이 보람차고 뿌듯하다.
6. 7조 안녕!
정말 즐거웠다. 좋은 팀을 만나서 정말 즐겁게 성장했다.
이렇게 좋은 추억을 안겨줘서 고마워요!


'스파르타코딩클럽 > 항해99' 카테고리의 다른 글
| 항해 20일차 TIL (0) | 2022.01.29 |
|---|---|
| 항해 19일차 TIL (0) | 2022.01.28 |
| 항해 17일차 TIL (0) | 2022.01.26 |
| 항해 16일차 TIL (0) | 2022.01.25 |
| 항해 15일차 TIL (0) | 2022.01.24 |