본문 바로가기

백준 & 프로그래머스52

백준.가운데를 말해요.1665.py https://www.acmicpc.net/problem/1655 1655번: 가운데를 말해요 첫째 줄에는 백준이가 외치는 정수의 개수 N이 주어진다. N은 1보다 크거나 같고, 100,000보다 작거나 같은 자연수이다. 그 다음 N줄에 걸쳐서 백준이가 외치는 정수가 차례대로 주어진다. 정수는 -1 www.acmicpc.net 1. 두개의 리스트를 이용 2. heappush를 이용해 최소값과 최대값(음수)로 하나의 max_value min_value 중간의 순서를 보장하는 리스트를 만듬 3. 중간값을 참조해서 출력 import heapq import sys def solution(): N = int(sys.stdin.readline().rstrip()) min_heap = [] max_heap = [] .. 2023. 10. 6.
백준.다각형의 면적.2103.java https://www.acmicpc.net/problem/2166 2166번: 다각형의 면적 첫째 줄에 N이 주어진다. 다음 N개의 줄에는 다각형을 이루는 순서대로 N개의 점의 x, y좌표가 주어진다. 좌표값은 절댓값이 100,000을 넘지 않는 정수이다. www.acmicpc.net import java.util.*; import java.io.*; public class bj2103 { public static void main(String[] arg){ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); HashMap sameX = new HashMap(); HashMap sameY = new HashMap(); try.. 2023. 9. 26.
백준.DFS와 BFS.1260.py https://www.acmicpc.net/problem/1260 1260번: DFS와 BFS 첫째 줄에 정점의 개수 N(1 ≤ N ≤ 1,000), 간선의 개수 M(1 ≤ M ≤ 10,000), 탐색을 시작할 정점의 번호 V가 주어진다. 다음 M개의 줄에는 간선이 연결하는 두 정점의 번호가 주어진다. 어떤 두 정점 사 www.acmicpc.net import sys import queue def solution_dfs(graph, start): visit, visited, resalt = [start], set(), [] while visit: node = visit.pop() if node not in visited: visited.add(node) resalt.append(str(node)) vis.. 2023. 9. 23.
백준.듣보잡.1764.py https://www.acmicpc.net/problem/1764 1764번: 듣보잡 첫째 줄에 듣도 못한 사람의 수 N, 보도 못한 사람의 수 M이 주어진다. 이어서 둘째 줄부터 N개의 줄에 걸쳐 듣도 못한 사람의 이름과, N+2째 줄부터 보도 못한 사람의 이름이 순서대로 주어진다. www.acmicpc.net import sys if __name__ == '__main__': n, m = map(int, sys.stdin.readline().rstrip().split()) ng, mg = [], [] for _ in range(n): ng.append(sys.stdin.readline().rstrip()) for _ in range(m): mg.append(sys.stdin.readline().rst.. 2023. 9. 21.
백준.멀티탭 스캐줄링.1700.py https://www.acmicpc.net/problem/1700 1700번: 멀티탭 스케줄링 기숙사에서 살고 있는 준규는 한 개의 멀티탭을 이용하고 있다. 준규는 키보드, 헤어드라이기, 핸드폰 충전기, 디지털 카메라 충전기 등 여러 개의 전기용품을 사용하면서 어쩔 수 없이 각종 전 www.acmicpc.net 완전탐색으로 풀다가 => 시간초과 +메모리초과 => 그래도 나와있는 테케중엔 틀린거x 그리디로 다시 도전 성공 그리디 코드 # 교훈: 멀티탭을 사자 import sys def solution(start_set, procedures,n): case_set, pro_dic, case_cnt = start_set, dict(),0 for idx, pr in enumerate(procedures): if.. 2023. 9. 20.
백준.단지번호붙이기.2667.py https://www.acmicpc.net/problem/2667 2667번: 단지번호붙이기 과 같이 정사각형 모양의 지도가 있다. 1은 집이 있는 곳을, 0은 집이 없는 곳을 나타낸다. 철수는 이 지도를 가지고 연결된 집의 모임인 단지를 정의하고, 단지에 번호를 붙이려 한다. 여 www.acmicpc.net import sys def solution(house_adr_dic): def adj_add(house_add): # return adj adr list x,y = house_add return [(x-1,y),(x+1,y),(x,y-1),(x,y+1)] def dfs_set(node_dic): # dfs 알고리즘 tm_keys, adj_adr_list_set = set(node_dic.keys().. 2023. 9. 20.