/date 24.10.09.
📌 1) 로그인 성공?
https://school.programmers.co.kr/learn/courses/30/lessons/120883
def solution(id_pw, db):
answer = ""
for i in db:
if i[0] == id_pw[0]:
if i[1] == id_pw[1]:
answer = "login"
else:
answer = "wrong pw"
break
else:
answer = "fail"
return answer
✔️ 문제만 읽었을 땐 드디어 enumerate 한 번 써보나? 했지만 그럴 필요가 없었다.
✔️ 테스트 케이스에서 한 문제가 계속 걸리길래 고민했는데, 중첩 if에서 break를 해주지 않으면 wrong pw로 결과가 나야 할 것이 fail로 나올 수도 있다는 점을 놓쳤다. break 추가하고 해결!
📌 2) 등수 매기기
https://school.programmers.co.kr/learn/courses/30/lessons/120882
def solution(score):
avg = [(sum(s)/2, i) for i, s in enumerate(score)]
sorted_avg = sorted(avg, key=lambda x: -x[0])
rank=[0]*len(score)
current = 1
for i in range(len(sorted_avg)):
if i > 0 and sorted_avg[i][0] == sorted_avg[i-1][0]:
rank[sorted_avg[i][1]] = rank[sorted_avg[i-1][1]]
else:
rank[sorted_avg[i][1]] = current
current += 1
return rank
✔️ 코드 짜는 게 까다로웠다. 솔직히 내 코드를 보면 파이썬을 잘 이해하고 있는 사람의 코드라고 생각되지는 않는다... 그렇지만 첫 술에 배부를 순 없지
✔️ 다른 사람이 올린 코드를 찾아보았는데 훨씬 깔끔해서 공유
✔️ index는 중복값이 있을 때 더 앞의 값을 리턴해준다. 분명 저번에 나도 활용해 본 코드였는데!
📌 3) 치킨 쿠폰
https://school.programmers.co.kr/learn/courses/30/lessons/120884
def solution(chicken):
num = 0
serv = chicken//10
na = chicken%10
cou = serv + na
while cou >= 10:
num += serv
cou = serv + na
serv = cou//10
na = cou%10
return num
📌 4) 저주의 숫자 3
https://school.programmers.co.kr/learn/courses/30/lessons/120871
def solution(n):
answer = 0
for i in range(1, n+1):
answer += 1
while '3' in str(answer) or answer%3==0:
answer+=1
return answer
'학습 기록 > 코딩 테스트 다짜고짜 풀어보기' 카테고리의 다른 글
[python] 프로그래머스 Lv.0 유한소수 판별하기 (0) | 2024.10.10 |
---|---|
[python] 프로그래머스 다항식 더하기 (0) | 2024.10.08 |
[python] 코딩 테스트 입문 문제 풀기 (8) (1) | 2024.10.06 |
[python] 코딩 테스트 입문 문제 풀기 (7) (1) | 2024.10.05 |
[python] 코딩 테스트 입문 문제 풀기 (6) (2) | 2024.09.30 |