본문 바로가기

알고리즘26

[python 백준 2075] N번째 큰수 📜 접근 방법 처음에는 heap에 내림차순으로 넣고 n만큼 빼면 n번째 큰수가 나오는 것을 생각하여 코드를 짰다. 하지만 메모리 오류 발생했다. heap안에 원소의 갯수를 제한시켜서 갯수가 n개 이상이면 현재 넣어야할 원소와 heap안에 있는 제일 작은 수를 비교한다. 현재 넣을 원소가 크다면 heap[0](가장 작은 수)에 있는 수를 pop하고 집어넣는다. 아닐경우 넘어간다. ❌ 실패 코드 메모리 오류 from heapq import heappush, heappop import sys input = sys.stdin.readline n = int(input()) heap = [] for i in range(n): tmp = list(map(int, input().split())) for num in t.. 2023. 5. 2.
[python] 프로그래머스 주식가격 문제 : https://school.programmers.co.kr/learn/courses/30/lessons/42584 📜 접근 방법 특정 가격을 기준으로 그 이후 가격이 유지 혹은 상승을 몇초간 했는지 구한다. i번째 가격을 비교시 i + 1 이후 가격들을 비교한다. ❌ 실패 코드 def solution(prices): answer = [] for i in range(len(prices)): cnt = 0 for j in range(i + 1, len(prices)): if prices[i] prices[j]: break answer.append(cnt) return answer 🔥시간 줄인 코드 from collections import deque def solution(prices): answe.. 2023. 4. 25.
[python] 프로그래머스 괄호 회전하기 문제 : https://school.programmers.co.kr/learn/courses/30/lessons/76502 📜 접근 방법 문장(s)의 갯수만큼 반복문 돌린다. 만약 현재 문장에 괄호가 올바를 경우, (문장에 괄호가 올바르지 않을 경우 넘어간다.) 갯수(answer) + 1 맨 앞 문자를 맨 뒤로 보낸다. 좀더 쉬운 문제 : https://school.programmers.co.kr/learn/courses/30/lessons/12909 좀더 쉬운 문제의 풀이 : https://chipndale.tistory.com/98 ❌ 실패 코드 ✅ 정답 코드 from collections import deque # 문장에 괄호가 알맞게 있는지 확인하는 함수 def check_symmetry(s): .. 2023. 4. 24.
[python] 프로그래머스 영어 끝말잇기 문제 : https://school.programmers.co.kr/learn/courses/30/lessons/12981 📜 접근 방법 찾아야 하는 것 : 가장 먼저 탈락하는 사람과 그 사람이 몇 번째 차례에 탈락하는지 조건 : 이미 말했던 단어를 말하는 경우, 이전 단어의 끝문자와 현재 단어의 첫 문자가 같지 않는 경우 주어진 단어 갯수만큼 반복 dict_에 단어가 없거나 이전 단어 끝 문자와 현재 단어 첫 문자가 같으면 dict_에 넣어주고 저장한 끝 문자를 변경 가장 먼저 탈락하는 사람과 몇번째 차례에 탈락하는지 구한다 ❌ 실패 코드 round 함수를 썼는데 사사오입 원칙으로 인해 제대로 숫자가 변하지 않는 오류 발생 사사오입 원칙 : https://chipndale.tistory.com/5 im.. 2023. 4. 22.