Python
![[python] 프로그래머스 - 쿠키 구입](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FJaqtZ%2FbtqIqmNMYGJ%2FAAAAAAAAAAAAAAAAAAAAAPYbOBll4CyBa34_Yt6p58EvEuRaV62-skbmCfS3h1AT%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1759244399%26allow_ip%3D%26allow_referer%3D%26signature%3DeLVavaIJf%252BpIZUDDJ1%252Fb5S9i4uE%253D)
[python] 프로그래머스 - 쿠키 구입
🤔문제 해결 Lv4 기준점을 하나 정한다. 0부터 쿠키의 길이-1 까지 그 기준은 첫째 아들 과자, 기준 + 1은 둘째 아들 과자로 시작한다. 1. 첫째의 과자가 적으므로 첫째에게 과자를 하나 더 준다. 2. 둘째의 과자가 더 적으므로 둘째에게 과자를 하나 더 준다. 3. 첫째의 과자가 적으므로 첫째에게 과자를 하나 더 준다. 4. 둘째의 과자가 더 적으므로 둘째에게 과자를 하나 더 준다. 5. 둘의 과자가 같으므로 값을 저장하고 첫째부터 과자를 더 줘본다. (둘째 먼저 줘도 된다.) 6. 둘째의 과자가 더 적으므로 둘째에게 과자를 하나 더 준다. 7. 첫째의 과자가 더 적어서 첫째에게 과자를 더 주고 싶지만 더 이상 줄 과자가 없다. 8. 다음 기준을 잡고 위의 과정을 반복한다. 💨 💻소스 코드 def..
![[python] 프로그래머스 - 디스크 컨트롤러](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2Fb8pBiv%2FbtqHXDJntcr%2FAAAAAAAAAAAAAAAAAAAAAA3yFMFZlmdnGgLz8oJYfrL93TXzLytXXoPBTHfLcOqZ%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1759244399%26allow_ip%3D%26allow_referer%3D%26signature%3DHmPFPlUkhxJfQRr7ktBfuWm8z7k%253D)
[python] 프로그래머스 - 디스크 컨트롤러
🤔문제 해결 Lv3 | 우선순위 큐 파이썬에서는 heapq 를 사용합니다. 먼저 현재 시간을 항상 계산해 줍니다. 현재 시간보다 투입시간이 작은 작업들을 힙큐에 넣어줍니다. 힙큐에 값이 여러개 들어있더라도, heappop() 을 하게 되면 작업시간이 가장 짧은 작업이 나오게 됩니다. ( 힙큐에서는 최솟값이 나오게 됩니다 ) 작업시간만큼 현재시간 을 늘려주고, 해당 작업의 대기시간+작업시간 을 따로 저장해 둡니다. 한 작업이 끝나고 나면 시간이 흘렀기 때문에 다시 현재 시간보다 투입시간이 작은 작업들을 힙큐에 넣어줍니다.(아까 넣은 작업 제외) 똑같이 heappop() 으로 현재시간과 작업시간을 저장합니다. 💨 업무투입시간이 오름차순 정렬이 안되어있어서 먼저 정렬을 해줘야 합니다. 💻소스 코드 import..
![[python] 백준 - 2343. 기타 레슨](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FdTiBs3%2FbtqHYJ3cXp8%2FAAAAAAAAAAAAAAAAAAAAAAFXvFJPmpaCDbJq9sN3lPuLaayEAi32BUPqJK8iV5aH%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1759244399%26allow_ip%3D%26allow_referer%3D%26signature%3DSct9LdMylJezMV1guUviATR2CCU%253D)
[python] 백준 - 2343. 기타 레슨
🤔문제 해결 S1 | 이분 탐색 이분 탐색 문제는 무엇을 탐색 할 것인지가 가장 중요합니다. 이 문제에서는 블루레이의 최소 크기 를 찾아야 합니다. 처음에 각각의 블루레이에 레슨들을 순서대로 담아야 합니다. 블루레이의 크기가 11라고 가정해 보겠습니다. 그렇게 되면 레슨들의 합이 11을 넘어서는 안됩니다. 그럼 아래와 같은 결과를 얻을 수 있습니다. 총 5개의 블루레이에 담아야 합니다. 테스트 케이스에서는 3개에 담으라고 했으니 답이 될 수 없습니다. 그렇다면 블루레이 크기를 늘려서 한 블루레이에 좀 더 많이 담아야 겠다는 생각을 할 수 있습니다. 15라고 가정해 보겠습니다. 총 4개의 블루레이에 담았습니다. 하지만 여전히 블루레이 개수가 많습니다. 블루레이의 크기를 더 늘려야 합니다. 만약 30으로 크..
![[python] 집합 자료형 set()](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2Fbi8TS6%2FbtqIRMMElq2%2FAAAAAAAAAAAAAAAAAAAAAL6VcAGVdrHkdp4XiIAzFWVJvhXB4c7EF6_O3T9fqous%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1759244399%26allow_ip%3D%26allow_referer%3D%26signature%3DL14TMBFS3OaNctl4PubNecsd6JA%253D)
[python] 집합 자료형 set()
📗 집합 set() set은 리스트와 비슷하게 볼 수 있다. 하지만 인덱스로 접근이 불가능하고, 정렬도 할 수 없다. for 문으로 하나하나 출력해봐도 그때 그때 순서가 뒤죽박죽으로 다르게 나온다. set 을 사용하는 이유는 중복이 없다 특정 원소가 있는 지 확인할 때 O(1)의 시간 복잡도를 가진다. ( 리스트의 경우 O(N) ) ex) if 원소 in 셋: 집합 관련 🔵 교집합, 합집합, 차집합 교집합: & or intersection 합집합: | or union 차집합: - or difference set1 = {1, 2, 3, 4, 5} set2 = {3, 4, 5, 6, 7} # 교집합 print(set1.intersection(set2)) # {3, 4, 5} print(set1 & set2)..
![[python] 백준 - 1926. 그림](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2F5WuYc%2FbtqHZjwrAmc%2FAAAAAAAAAAAAAAAAAAAAAAJ9EYYcrNiSalhSqEFN_Aac7QnhH0RbIyvNTVbDOJ2y%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1759244399%26allow_ip%3D%26allow_referer%3D%26signature%3D4F7koxiDG1i7rdL0%252BWk87ySJq3w%253D)
[python] 백준 - 1926. 그림
🤔문제 해결 S1 | BFS, 그래프 그림을 하나 선택 한다. 그 그림의 상하좌우를 탐색한다. 만약 상하좌우에 그림이 있다면 그 그림을 선택 후 다시 상하좌우 선택한다. 더 이상 처음 선택한 그림과 연결된 그림이 없을 때 까지 탐색. 위의 과정을 반복한다. 처음 그림을 선택하면 그림의 갯수 +1 그림선택후 상하좌우 탐색하면서 그림을 찾으면 그림의 크기 +1 💨 기본적인 BFS 문제 💻소스 코드 from collections import deque def bfs(x, y): q = deque() q.append((x, y)) images[i][j] = 0 size = 1 # 최초 들어갈 때 그림 크기 1로 시작 while q: x, y = q.popleft() for k in range(4): # 상하좌우..
![[python] 'input.txt'로 input 받기 ( feat.sys )](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FDhfAl%2FbtqIPRngYVl%2FAAAAAAAAAAAAAAAAAAAAAPgklmVnSDv0Kfrh84dQ7WCeeQ6OC7w5isIX3bDMvuZN%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1759244399%26allow_ip%3D%26allow_referer%3D%26signature%3DGDRSjRGLB2gsgGx7jU5Q%252Fcpb7P4%253D)
[python] 'input.txt'로 input 받기 ( feat.sys )
📗 파일을 읽어서 input 값을 받아보자 ctrl+c, ctrl+v 는 이제 그만 🔵사용법 import sys sys.stdin = open('input.txt') for i in range(5): print(sys.stdin.readline()) input.txt: 2 4 40 30 30 50 15 1 21 3 4 5 35 5 4 3 5 98 21 14 17 32 🔵결과 2 4 40 30 30 50 15 1 21 3 4 5 35 5 4 3 5 98 21 14 17 32