연습의 흔적들🚩 27

[백준] 1213번 팰린드롬 만들기 파이썬 풀이

1213번: 팰린드롬 만들기첫째 줄에 문제의 정답을 출력한다. 만약 불가능할 때는 "I'm Sorry Hansoo"를 출력한다. 정답이 여러 개일 경우에는 사전순으로 앞서는 것을 출력한다.www.acmicpc.net[문제][코드]name = input()names = [0] * 26for j in name: names[ord(j) - 65] += 1a = 0a_a = ""a_c = ""for i in range(26): if names[i] % 2 == 1: a += 1 a_a += chr(i + 65) a_c += chr(i+65) * (names[i] // 2)if a > 1: print("I'm Sorry Hansoo")else: print(a_c..

[백준] 11724번 연결 요소의 개수 파이썬(Python) 풀이

11724번: 연결 요소의 개수 첫째 줄에 정점의 개수 N과 간선의 개수 M이 주어진다. (1 ≤ N ≤ 1,000, 0 ≤ M ≤ N×(N-1)/2) 둘째 줄부터 M개의 줄에 간선의 양 끝점 u와 v가 주어진다. (1 ≤ u, v ≤ N, u ≠ v) 같은 간선은 한 번만 주 www.acmicpc.net [문제] [코드] import sys sys.setrecursionlimit(100000) input = sys.stdin.readline def dfs(start, depth): visited[start] = True for i in graph[start]: if not visited[i]: dfs(i, depth + 1) n,m = map(int, input().split()) graph = [[]..

[백준] 1012번 유기농 배추 파이썬(Python) 풀이

1012번: 유기농 배추 차세대 영농인 한나는 강원도 고랭지에서 유기농 배추를 재배하기로 하였다. 농약을 쓰지 않고 배추를 재배하려면 배추를 해충으로부터 보호하는 것이 중요하기 때문에, 한나는 해충 방지에 www.acmicpc.net [문제] [코드] #bfs 문제입니다 test = int(input()) dx = [-1, 1, 0, 0] dy = [0, 0, -1, 1] def BFS(x,y): queue = [(x,y)] matrix[x][y] = 0 # 방문처리 while queue: x,y = queue.pop(0) for i in range(4): nx = x + dx[i] ny = y + dy[i] if nx = M or ny = N: continue i..

[백준] 1260번 DFS와 BFS 파이썬(Python) 풀이

1260번: DFS와 BFS 첫째 줄에 정점의 개수 N(1 ≤ N ≤ 1,000), 간선의 개수 M(1 ≤ M ≤ 10,000), 탐색을 시작할 정점의 번호 V가 주어진다. 다음 M개의 줄에는 간선이 연결하는 두 정점의 번호가 주어진다. 어떤 두 정점 사 www.acmicpc.net [문제] [코드] n, M, v = map(int, input().split()) #인접한 m = [[0] * (n+1) for i in range(n+1)] #방문 visited = [0] * (n+1) for i in range(M): a, b = map(int, input().split()) m[a][b] = m[b][a] = 1 #dfs def dfs(v): visited[v] = 1 print(v, end=' ') ..

[백준] 1021번 회전하는 큐 파이썬(Python) 풀이

1021번: 회전하는 큐 첫째 줄에 큐의 크기 N과 뽑아내려고 하는 수의 개수 M이 주어진다. N은 50보다 작거나 같은 자연수이고, M은 N보다 작거나 같은 자연수이다. 둘째 줄에는 지민이가 뽑아내려고 하는 수의 위치가 www.acmicpc.net [문제] [코드] from collections import deque import sys n, m = map(int, sys.stdin.readline().split()) p = list(map(int, sys.stdin.readline().split())) #뽑으려는 수위치 dq = deque([i for i in range(1, n+1)]) count = 0 for i in p: while True: if dq[0] == i: dq.popleft() b..

[백준] 2108번 통계학 파이썬(Python) 풀이

2108번: 통계학 첫째 줄에 수의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 단, N은 홀수이다. 그 다음 N개의 줄에는 정수들이 주어진다. 입력되는 정수의 절댓값은 4,000을 넘지 않는다. www.acmicpc.net [문제] [코드] import sys from collections import Counter input = sys.stdin.readline def make_count(num): num = sorted(num) print(int(round(sum(num)/len(num),0))) print(num[len(num)//2]) f = Counter(num) b = f.most_common() if len(num) > 1 : if b[0][1] == b[1][1]: print(b[..