본문 바로가기

Lv.13

[알고리즘] 프로그래머스 lv.1 | 붕대 감기 붕대 감기 답: 더보기 def solution(bandage, health, attacks): t, x, y = bandage hp = health 이전공격시간 = 0 for attack in attacks: 공격시간, 피해량 = attack 스킬시전시간 = (공격시간 - 이전공격시간) 시간 = 1 연속성공 = 0 if 스킬시전시간 > 1: while 시간 = t: hp += y 연속성공 = 0 if hp >= health: hp = health 시간 += 1 print(시간, hp, 연속성공) hp -= 피해량 if hp > 풀이생각 1) 이전공격시간을 선언, for문 끝날때 저장하고, 스킬시전시간을 계산 이전공격시간 .. 2024. 2. 13.
[알고리즘] 프로그래머스 | 가장 가까운 같은 글자 가장 가까운 같은 글자 답: 더보기 def solution(s): answer = [] a_dic = {} for i, alpha in enumerate(list(s)): if not alpha in a_dic: answer.append(-1) else: answer.append(i - a_dic[alpha]) a_dic[alpha] = i return answer 문제 분석 및 해석 문자열 s가 주어질 때 s의 알파벳이 처음 나왔을때는 -1, 이전에 있었던 알파벳이면 index의 차이를 배열에 더해 return하는 문제 >> 풀이생각 1. stack을 쌓기, stack에 없으면 -1 2. -1번에 있으면 1 -2번에 있으면 2... while문으로 처리해보자 단점 : >> if not 요소 in sta.. 2023. 11. 7.
[알고리즘] 프로그래머스 | 3진법 뒤집기, 푸드파이트대회, 예산 3진법 뒤집기 답: 더보기 def solution(n): answer = 0 num_str = "" while(n != 0): num_str += str(n % 3) n = n // 3 for i in range(2, len(num_str)+1): # i의 반대되는 수가 3승으로 들어가야함, -2부터 1승 시작 answer += int(num_str[-i]) * (3**(i-1)) return answer + int(num_str[-1]) 계산이 약간 복잡했지만 풀어낼 수 있어서 기분좋당! +++ int()의 기능. str으로 된 숫자를 2번째인자 진법으로 변환해줌.. def solution(n): num_str = "" while(n != 0): num_str += str(n % 3) n = n // .. 2023. 8. 9.