Lv0. 아이스 아메리카노 (Python)
링크: 코딩테스트 연습 - 아이스 아메리카노 | 프로그래머스 스쿨
내가 작성한 코드
def solution(money):
return list(divmod(money, 5500))
새로 배운 코드
def solution(money):
return list(divmod(money, 5500))
# divmod -> (몫, 나머지)를 한번에 구하는 함수
# 문제 출력 형식이 리스트이므로 list()로 변환
Lv1. 핸드폰 번호 가리기 (Python)
링크: 코딩테스트 연습 - 핸드폰 번호 가리기 | 프로그래머스 스쿨
내가 작성한 코드
def solution(phone_number):
stars = '*' * (len(phone_number) -4)
last = phone_number[-4:]
return stars + last
새로 배운 코드
def solution(phone_number):
return '*' * (len(phone_number)-4) + phone_number[-4:]
# return문으로 곧장 쓸 수 있다
# '*' * (len(phone_number)-4) -> 전체 길이에서 뒤 4자리를 제외한 앞자리를 *로 가림
# phone_number[-4:] -> 전화번호 뒤 4자리만 슬라이싱하여 그대로 노출
# [:-4] -> 뒤에서 4개를 제외한 앞부분 전체를 가져옴
Lv2. 영어 끝말잇기 (Python)
링크: 코딩테스트 연습 - 영어 끝말잇기 | 프로그래머스 스쿨
내가 작성한 코드
# 현재단어: current_word
# 이전단어: prev_word
def solution(n, words):
used_words = set() # set(집합)을 사용했으므로 add 사용 -> 동일한 단어를 중복 저장하지 않아 중복 체크에 최적화
# used_words = [] -> 리스트형이면 append 사용
for i in range(len(words)): # 단어를 인덱스로 접근하며 반복(번호/차례 계산)
current_word = words[i] # i번째 단어를 현재 단어로 설정
if i > 0: # i가 0보다 크면(첫 단어가 아니라면)
prev_word = words[i-1] # 이전 단어를 저장
if prev_word[-1:] != current_word[:1]: # 이전 단어의 마지막 글자와 현재 단어의 첫 글자가 다르다면
return [(i%n)+1, (i//n)+1]
if current_word in used_words: # 현재 단어가 사용한 단어에 있다면
return [(i%n)+1, (i//n)+1]
used_words.add(current_word) # 현재 단어를 사용한 단어 목록에 추가한다
return [0,0] # 문제 없이 끝남
# [(i%n)+1, (i//n)+1] -> [번호, 차례]
# (i%n)+1 -> i번째 단어를 말한 사람의 번호
# %n은 i번째의 단어가 어느 사람 차례인지를 0~(n-1) 사이의 숫자로 순환
# 따라서 실제 사람 번호가 되도록 +1
# (i//n)+1 -> 그 사람이 말한 차례
# n개 단어마다 한 번씩 라운드가 증가함
# 몫에 +1을 해 1번째부터 시작하도록
새로 배운 코드
# 현재단어: words[i]
# 이전단어: words[i-1]
def solution(n, words):
# i는 1부터 시작(0번째 단어는 이전 단어가 없으므로 검사가 불필요함)
for i in range(1, len(words)):
# 조건 1: 이어 말하기 규칙 위반 검사
# words[i][0] -> 현재 단어의 첫글자
# words[i-1][-1] -> 이전 단어의 마지막 글자
# 조건 2: 중복 단어 검사
# words[:i] -> 지금까지 나온 모든 단어 리스트 (0 ~ i-1)
# words[i] in words[:i] -> 현재 단어가 이전에 이미 등장했는지 확인
if words[i][0] != words[i-1][-1] or words[i] in words[:i]:
# 위 풀이 참고
return [(i%n)+1, (i//n)+1]
return [0,0]
'코딩테스트' 카테고리의 다른 글
| [25.12.16 코테(Python)]-피타고라스의 정리&삼총사 (0) | 2025.12.16 |
|---|---|
| [25.12.15 코테(Python)]-코드 처리하기 (0) | 2025.12.15 |
| [25.12.11 코테(Python)]-배열의 원소 삭제하기&수박수박수박수박수? (0) | 2025.12.11 |
| [25.12.10 코테(Python)]-나머지가 1이 되는 수 찾기 (0) | 2025.12.10 |
| [25.12.09 코테(Python)]-이어 붙인 수&콜라츠 추측 (0) | 2025.12.09 |