[프로그래머스] 코딩테스트 스터디 7일차
치킨 쿠폰
몫과 나머지를 둘 다 사용하는 경우 divmod를 사용하면 편하다.
divmod는 몫과 나머지를 튜플 형태로 반환해준다.
print(divmod(3, 2))
# (1, 1)
유한소수 판별하기
파이썬의 최대공약수 최소공배수 함수를 활용해보자
import math한 다음에
최대공약수: math.gcd()
최소공배수: math.lcm()
저주의 숫자
다른 사람의 풀이를 보니까 100까지라 노가다를 한 사람도 있었고 while문으로 조건에 만족하지 않을 때까지 1씩 더한 사람도 있었다. 후자의 풀이를 시도했다가 꼬여서 위의 풀이로 풀었음. 그리고 배운점은 ㄹㅇ 코테를 풀 때 안풀리면 노가다를 해서라도 풀어보자..!라는 것
특이한 정렬
꽤나 복잡하게 풀었는데 파이썬에는 sort함수가 매우 잘 되어있고, key도 넣을 수 있다.
sort를 사용해서 풀면 다음과 같음
sorted의 매개변수 중에 key는 정렬의 기준을 목적으로 하는 함수를 넣는다. 이 때 lambda를 많이 사용한다. 이 때 lambda의 결괏값이 튜플의 형태임을 볼 수 있는데, 이 경우 앞의 값이 같을 때, 뒤의 값으로 정렬한다. 즉, n - x가 더 작은 수, 그냥 더 작은 수부터 정렬된다.
문자열 밀기
처음에 문자열을 리스트로 변환할 때 for문을 사용했는데 list()를 사용해서 변환할 수 있었던 것이 떠올라서 코드를 바꿨다. (좀 더 깔끔해짐!) 꽤나 괜찮은 풀이라고 생각하고 다른 사람의 풀이를 봤는데 미친,, 어떤 사람이 한 줄로 풀었음. 그냥 부럽지도 않음.
이해라도 해보려고 가지고 왔음.
아... b를 2번 곱한거에서 a를 찾는거네,, 와 진짜 이런 생각은 어떻게 하는걸까 진짜 대단하다..
난 저렇게까지 하는건 목표도 아니고,, 그냥 내 수준에서 열심히 하는걸 목표로 하기로 했음,, 그게 마음도 편할 듯
이렇게 한줄로 변환하면 더 깔끔할 듯
바로 바꿔옴.. 편안
내일이면 0단계 100문제가 끝난다..!
다음은 코딩테스트 고득점 kit를 풀어볼까한다. 스터디원들이랑 얘기를 좀 해봐야겠지만,,
그래도 처음보단 파이썬에 익숙해진 것 같아서 뿌듯하다!