분류 전체보기

    [백준] 20918. 전구

    [백준] 20918. 전구

    📌문제 https://www.acmicpc.net/problem/21918 21918번: 전구 $N$개의 전구가 있고 맨 왼쪽에 있는 전구를 첫 번째라고 하자. 전구의 상태는 두 가지가 있으며 이를 숫자로 표현한다. $1$은 전구가 켜져 있는 상태를 의미하고, $0$은 전구가 꺼져 있는 상태를 www.acmicpc.net 🎖️난이도 ✔️풀이 n, m = map(int, input().split()) s_list = list(map(int, input().split())) for _ in range(m): a, b, c = map(int, input().split()) if a == 1: s_list[b-1] = c elif a == 2: s_list[b-1:c] = [(s_list[i]+1)%2 for ..

    [백준] 20546. 기적의 매매법

    [백준] 20546. 기적의 매매법

    📌문제 20546번: 🐜 기적의 매매법 🐜 1월 14일 기준 준현이의 자산이 더 크다면 "BNP"를, 성민이의 자산이 더 크다면 "TIMING"을 출력한다. 둘의 자산이 같다면 "SAMESAME"을 출력한다. 모든 결과 따옴표를 제외하고 출력한다. www.acmicpc.net 🎖️난이도 ✔️풀이 seed = int(input()) juga_list = list(map(int, input().split())) # junhyun bnp = seed num = 0 for juga in juga_list: if bnp == 0: break buy = bnp // juga num += buy bnp -= juga * buy bnp_result = bnp + num * juga_list[-1] # sungmin t..

    [백준] 1991. 트리 순회

    [백준] 1991. 트리 순회

    📌문제 1991번: 트리 순회 첫째 줄에는 이진 트리의 노드의 개수 N(1 ≤ N ≤ 26)이 주어진다. 둘째 줄부터 N개의 줄에 걸쳐 각 노드와 그의 왼쪽 자식 노드, 오른쪽 자식 노드가 주어진다. 노드의 이름은 A부터 차례대로 알파 www.acmicpc.net 🎖️난이도 ✔️풀이 # sol1) dict & 재귀 n = int(input()) tree = {} for _ in range(n): item, left, right = input().split() tree[item] = (left, right) def preorder(item): print(item, end="") if tree[item][0] != ".": preorder(tree[item][0]) if tree[item][1] != "."..

    [백준] 11404. 플로이드

    [백준] 11404. 플로이드

    📌문제 11404번: 플로이드 첫째 줄에 도시의 개수 n이 주어지고 둘째 줄에는 버스의 개수 m이 주어진다. 그리고 셋째 줄부터 m+2줄까지 다음과 같은 버스의 정보가 주어진다. 먼저 처음에는 그 버스의 출발 도시의 번호가 www.acmicpc.net 🎖️난이도 ✔️풀이 import sys input = sys.stdin.readline INF = int(1e9) n = int(input()) m = int(input()) graph = [[INF]*(n+1) for _ in range(n+1)] for i in range(1, n+1): graph[i][i] = 0 for _ in range(m): a, b, c = map(int, input().split()) graph[a][b] = min(c, g..

    [백준] 11403. 경로 찾기

    [백준] 11403. 경로 찾기

    📌문제 11403번: 경로 찾기 가중치 없는 방향 그래프 G가 주어졌을 때, 모든 정점 (i, j)에 대해서, i에서 j로 가는 경로가 있는지 없는지 구하는 프로그램을 작성하시오. www.acmicpc.net 🎖️난이도 ✔️풀이 # sol1) graph[i][i]도 못간다고 생각하고 무한으로 초기화 & 플로이드워셜로 최단거리 구하기 import sys input = sys.stdin.readline n = int(input()) INF = int(1e9) graph = [list(map(int, input().split())) for _ in range(n)] for i in range(n): for j in range(n): if graph[i][j] == 0: graph[i][j] = INF # 무한..