👨🏻💻알고리즘

[프로그래머스] Lv2. 귤 고르기
문제 링크: https://school.programmers.co.kr/learn/courses/30/lessons/138476?language=python3 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 코드 from collections import Counter def solution(k, tangerine): cnt = 0 c = Counter(tangerine) arr = list(c.items()) arr.sort(reverse=True,key = lambda x : x[1]) for i in arr: if k

[백준] 1162. 도로포장
✍🏻코드 import heapq INF = 98765432109876543210 n,m,k = map(int,input().split()) graph = [[] for _ in range(n+1)] for i in range(m): a,b,c = map(int,input().split()) graph[a].append((b,c)) graph[b].append((a,c)) q = [] distance = [[INF]*(k+1) for _ in range(n+1)] for i in range(k+1): distance[1][i] = 0 heapq.heappush(q,(0,1,0)) while q: dist,now,p = heapq.heappop(q) if dist > distance[now][p]: cont..

[프로그래머스] Lv2. 뉴스 클러스터링
문제 링크: https://school.programmers.co.kr/learn/courses/30/lessons/17677 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr ✍🏻코드 from collections import Counter def solution(str1, str2): arr1,arr2 = [],[] for i in range(len(str1)-1): if str1[i:i+2].isalpha(): arr1.append(str1[i:i+2].upper()) for i in range(len(str2)-1): if str2[i:i+2].isa..

[프로그래머스] Lv2. 프린터
문제 링크: https://school.programmers.co.kr/learn/courses/30/lessons/42587 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr ✍🏻코드 from collections import deque def solution(priorities, location): q=[(i,p) for i,p in enumerate(priorities)] cnt = 0 while True: tmp = q.pop(0) if any(tmp[1] < x[1] for x in q): q.append(tmp) else: cnt += 1 if l..

[프로그래머스] Lv2. n^2 배열 자르기
문제 링크: https://school.programmers.co.kr/learn/courses/30/lessons/87390# 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr ✍🏻코드 def solution(n, left, right): arr = [] for i in range(left,right+1): arr.append(max(i//n,i%n)+1) return arr 💡풀이 for문으로 n x n 크기의 2차원 배열을 구해서 배열을 합쳐 슬라이싱 하는 것은 시간 초과로 문제를 해결할 수 없습니다. 배열의 규칙적인 부분을 확인해보면, i번째의 값은 ..

[프로그래머스-카카오] Lv2. 튜플
문제 링크: https://school.programmers.co.kr/learn/courses/30/lessons/64065 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr ✍🏻코드 from collections import deque def solution(s): s = s[2:-2] s = s.split('},{') answer = [] s.sort(key=lambda x:len(x)) for i in s: arr = i.split(',') for j in arr: if int(j) not in answer: answer.append(int(j)) r..

[백준] 2096. 내려가기
문제 링크: https://www.acmicpc.net/problem/2096 2096번: 내려가기 첫째 줄에 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 N개의 줄에는 숫자가 세 개씩 주어진다. 숫자는 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 중의 하나가 된다. www.acmicpc.net ✍🏻코드 import sys n = int(sys.stdin.readline().rstrip()) max_arr = [0]*3 min_arr = [0]*3 max_buf = [0]*3 min_buf = [0]*3 for y in range(n): a, b, c = map(int, sys.stdin.readline().rstrip().split()) for i in range(3): if i == 0..