[Beakjoon] 4195. 친구 네트워크
·
코딩테스트/Python
🔗 Problem Linkhttps://www.acmicpc.net/problem/4195❔Thinking친구 관계가 주어지면, 해당 친구 네트워크에 속한 인원 수를 반환한다.친구 네트워크는, root가 같은 사람들을 뜻한다.💻Solutionimport sysinput = sys.stdin.readlinedef find_parent(x, parent): if x != parent[x]: parent[x] = find_parent(parent[x], parent) return parent[x]def union(a, b, parent, size): a = find_parent(a, parent) b = find_parent(b, parent) if a != b: ..
[Beakjoon] 20040. 사이클 게임
·
코딩테스트/Python
🔗 Problem Linkhttps://www.acmicpc.net/problem/20040❔Thinking방향이 없는 그래프에서 사이클이 형성되었는지 확인하고, 그 순간을 출력한다.사이클이 없다면 0을 출력한다.💻Solutionimport sysinput = sys.stdin.readlineN, M = map(int, input().split())roots = [i for i in range(N)]def find_root(x): if x != roots[x]: roots[x] = find_root(roots[x]) return roots[x]def union(a, b, roots): a = find_root(a) b = find_root(b) roots[max..
[Beakjoon] 1213. 펠린드롬 만들기
·
코딩테스트/Python
🔗 Problem Linkhttps://www.acmicpc.net/problem/1213❔Thinking주어진 문자열을 사전순으로 앞서는 '펠린드롬' 문자열을 만들어 반환한다.똑바로해도, 거꾸로해도 같아야 하기 때문에, 배열 세개로 해결한다. (left, mid, right)만약 가운데 오는 문자열이 2개 이상일 경우, 펠린드롬 문자열을 만들 수 없다. (ex - AAABBB)💻Solutionname = list(input())name.sort()char_set = set()left, mid, right = [], [], []for char in name: if char not in char_set: char_set.add(char) tmp = name.count(ch..
[Baekjoon] 1439번 - 뒤집기
·
코딩테스트/Python
🔗 Problem Link 1439번: 뒤집기 다솜이는 0과 1로만 이루어진 문자열 S를 가지고 있다. 다솜이는 이 문자열 S에 있는 모든 숫자를 전부 같게 만들려고 한다. 다솜이가 할 수 있는 행동은 S에서 연속된 하나 이상의 숫자를 잡고 모 www.acmicpc.net ❔Thinking 0과1로 이루어진 문자열을 모두 같은 문자로 만드는 뒤집기 방법 중, 최소 횟수를 출력한다. 0을 뒤집으면 1로, 1을 뒤집으면 0이 된다. 같은 숫자의 연속은 한꺼번에 뒤집을 수 있다. 💻Solution 1. 정규표현식을 활용한 풀이 import re zero_r = re.compile('0+') one_r = re.compile('1+') word = input() print(min(len(zero_r.findal..