📁그리디(Greedy) 활용 문제를 해결하는 과정에서 각 단계마다 가장 좋아 보이는 선택을 하는 방식으로, 매 순간 최적의 해결책을 선택함으로써 최종적인 해답을 찾아가는 전략 import sys input = sys.stdin.readline math_ = input().split('-') # 뺄셈 기호를 기준으로 식 분리 result = 0 for i in math_[0].split('+'): # 첫번째 뺄셈 기호 이전 모든 수 더함 result += int(i) for i in math_[1:]: # 첫번째 뺄셈 기호 이후의 모든 식에 대해 for j in i.split('+'): # 덧셈 기호를 기준으로 식 분리하고 각각의 수를 뺌 result -= int(j) print(result) 1541번:..
📁플로이드 워셜(Floyd-Warshall) 활용 모든 정점 사이의 최단 경로를 찾는 탐색 알고리즘 하나의 정점에서 다른 정점으로 바로 갈 수 있으면 최소 비용을, 갈 수 없다면 INF로 배열에 값을 저장 3중 for문을 통해 거쳐가는 정점을 설정한 후 해당 정점을 거쳐가 비용이 줄어드는 경우에는 값을 바꿔줌 위의 과정을 반복해 모든 정점 사이의 최단 경로를 탐색 import sys input = sys.stdin.readline n = int(input()) # 물건의 개수 m = int(input()) # 미리 측정된 물건 쌍의 개수 INF = int(1e9) arr = [[INF] * (n+1) for _ in range(n+1)] # 2차원 리스트 만들고, 무한대로 초기화 # 자기 자신에서 자기 ..
📁정규표현식 활용 정규표현식(RE)은 특정한 규칙을 가진 문자열의 집합을 표현하는데 사용하는 형식 언어 복잡한 문자열의 검색과 치환을 위해 사용됨 import sys import re input = sys.stdin.readline pattern = re.compile("(100+1+|01)+") T = int(input()) for _ in range(T): word = input().rstrip() if pattern.fullmatch(word): print("YES") else: print("NO") 1013번: Contact 입력의 첫 줄에는 테스트 케이스의 개수 T가 주어진다. 그 다음 줄부터 각각의 테스트 케이스에 대해 전파를 표현하는, { 0, 1 }만으로 이루어진 문자열이 공백 없이 주어..