전체 글

전체 글

    [프로그래머스] Level 2 - 괄호 회전하기 (Python)

    [프로그래머스] Level 2 - 괄호 회전하기 (Python)

    https://programmers.co.kr/learn/courses/30/lessons/76502 코딩테스트 연습 - 괄호 회전하기 programmers.co.kr ✅ Solution deque를 이용해 문자 하나씩 빼주면서 stack 가장 마지막 요소와 짝일 때, stack의 마지막 요소를 pop 해주고 짝이 아니라면 빼준 문자를 stack에 넣어준다. stack에 남아있는 문자가 없을 때 올바른 괄호 문자열임을 의미하므로 answer에 1을 더해준다. ✅ Code from collections import deque def isCorrect(s): stack = [] s = deque(s) while s: tmp = s.popleft() if stack: if tmp == ']' and stack..

    [프로그래머스] Level 2 - 짝지어 제거하기 (Python)

    [프로그래머스] Level 2 - 짝지어 제거하기 (Python)

    https://programmers.co.kr/learn/courses/30/lessons/12973 코딩테스트 연습 - 짝지어 제거하기 짝지어 제거하기는, 알파벳 소문자로 이루어진 문자열을 가지고 시작합니다. 먼저 문자열에서 같은 알파벳이 2개 붙어 있는 짝을 찾습니다. 그다음, 그 둘을 제거한 뒤, 앞뒤로 문자열을 이어 붙 programmers.co.kr ✅ Solution answer의 길이가 0이라면 문자를 그냥 넣어준다. 만약 1이 아니라면 answer의 가장 마지막 요소와 alpha를 비교하여 같다면 짝지어 제거할 수 있으므로 answer.pop()을 이용하여 제거해준다. 다르다면 alpha를 answer에 넣어준다. answer의 길이가 0이라면 모두 짝지어 없어진 것을 의미하므로 1을 리턴..

    [프로그래머스] Level 2 - 타겟 넘버 (Python)

    [프로그래머스] Level 2 - 타겟 넘버 (Python)

    https://programmers.co.kr/learn/courses/30/lessons/43165 코딩테스트 연습 - 타겟 넘버 n개의 음이 아닌 정수들이 있습니다. 이 정수들을 순서를 바꾸지 않고 적절히 더하거나 빼서 타겟 넘버를 만들려고 합니다. 예를 들어 [1, 1, 1, 1, 1]로 숫자 3을 만들려면 다음 다섯 방법을 쓸 수 programmers.co.kr ✅ Solution deque를 이용하여 idx가 numbers의 길이보다 작을 때만 +, - 의 경우를 모두 구해준다. 만약 idx가 numbers의 길이가 같은 경우에는 target값과 비교하여 같다면 answer에 1을 더해준다. ✅ Code from collections import deque def solution(numbers,..

    [프로그래머스] Level 2 - 더 맵게 (Python)

    [프로그래머스] Level 2 - 더 맵게 (Python)

    https://programmers.co.kr/learn/courses/30/lessons/42626 코딩테스트 연습 - 더 맵게 매운 것을 좋아하는 Leo는 모든 음식의 스코빌 지수를 K 이상으로 만들고 싶습니다. 모든 음식의 스코빌 지수를 K 이상으로 만들기 위해 Leo는 스코빌 지수가 가장 낮은 두 개의 음식을 아래와 같 programmers.co.kr ✅ Solution 가장 작은 값에 반복적으로 접근해야 하므로 heapq 모듈을 사용한다. heapq의 heapify를 이용하여 scoville 배열을 최소 힙 자료구조로 변환한다. 가장 작은 스코빌 지수가 k보다 작다는 조건을 이용하여 반복문을 돌린다. 반복문에서는 가장 작은 스코빌 지수와 두 번째로 작은 스코빌 지수를 heapq.heappop()..

    [프로그래머스] Level 2 - 주차 요금 계산 (Python)

    [프로그래머스] Level 2 - 주차 요금 계산 (Python)

    https://programmers.co.kr/learn/courses/30/lessons/92341 코딩테스트 연습 - 주차 요금 계산 [180, 5000, 10, 600] ["05:34 5961 IN", "06:00 0000 IN", "06:34 0000 OUT", "07:59 5961 OUT", "07:59 0148 IN", "18:59 0000 IN", "19:09 0148 OUT", "22:59 5961 IN", "23:00 5961 OUT"] [14600, 34400, 5000] programmers.co.kr ✅ Solution defaultdict을 이용하여 차량별로 입/출차 내역을 저장해둔다. 그리고 defaultdict, infos의 키를 확인하면서 주차 요금을 계산해준다. 만약 해당 ..

    [프로그래머스] Level 2 - 양궁대회 (Python)

    [프로그래머스] Level 2 - 양궁대회 (Python)

    https://programmers.co.kr/learn/courses/30/lessons/92342 코딩테스트 연습 - 양궁대회 문제 설명 카카오배 양궁대회가 열렸습니다. 라이언은 저번 카카오배 양궁대회 우승자이고 이번 대회에도 결승전까지 올라왔습니다. 결승전 상대는 어피치입니다. 카카오배 양궁대회 운영위원 programmers.co.kr ✅ Solution combinations_with_replacements를 이용하여 라이언이 쏠 수 있는 점수들의 조합, candidates를 모두 구한다. candidates를 돌면서 라이언의 점수를 계산해주고, 어피치 점수와 비교한다. 점수 차이가 같을 때는 낮은 점수의 비중이 큰 경우를 리턴하라고 했으니 낮은 점수를 먼저 채우면서 라이언의 점수를 만든다. 그렇..

    [프로그래머스] Level 2 - [3차] 압축 (Python)

    [프로그래머스] Level 2 - [3차] 압축 (Python)

    https://programmers.co.kr/learn/courses/30/lessons/17684 코딩테스트 연습 - [3차] 압축 TOBEORNOTTOBEORTOBEORNOT [20, 15, 2, 5, 15, 18, 14, 15, 20, 27, 29, 31, 36, 30, 32, 34] programmers.co.kr ✅ Solution 길이가 1인 단어를 딕셔너리 타입으로 모두 초기화한다. 인덱스 값을 1씩 더해가며 사전에 없는 문자/문자열을 찾는다. 없는 문자열을 찾았으면 해당 값을 사전에 추가해주고, 맨 마지막 문자를 제외한 문자/문자열을 answer에 추가해준다. 그리고 시작 인덱스를 끝나는 인덱스로 바꿔준다. -> 끝나는 인덱스 값이 msg와 같아질 때까지 반복! ✅ Code def sol..

    [프로그래머스] Level 2 -  [3차] 방금그곡 (Python)

    [프로그래머스] Level 2 - [3차] 방금그곡 (Python)

    https://programmers.co.kr/learn/courses/30/lessons/17683 코딩테스트 연습 - [3차] 방금그곡 방금그곡 라디오를 자주 듣는 네오는 라디오에서 방금 나왔던 음악이 무슨 음악인지 궁금해질 때가 많다. 그럴 때 네오는 다음 포털의 '방금그곡' 서비스를 이용하곤 한다. 방금그곡에서는 TV, programmers.co.kr ✅ Solution replace를 이용해서 musicinfos에서 # 붙은 음들을 다른 알파벳으로 바꿔준다. 재생 시간을 계산한 뒤, 해당 재생시간 동안의 음악을 music 변수에 할당한다. 만약 m 이 music 내 문자열에 포함되어 있다면, answer에 재생 시간과 곡 명을 넣어준다. time이 최대인 곡 명을 찾아 반환한다. ✅ Code d..