백준
4주차 - 정렬
정렬 알고리즘이란? 데이터를 특정한 기준에 따라 순서대로 나열 컴퓨터 분야에서 중요시되는 문제 중 하나 탐색에 용이 프로그래밍과 알고리즘 이해에 많은 도움이 정렬 알고리즘 종류 1. 선택 정렬 가장 기초적인 알고리즘 전체 범위에서 차례대로 가장 작은 숫자를 탐색하고 가장 왼쪽부터 차례대로 교환하는 방식 전체 범위를 돌며 작은 숫자를 선택하여 정렬하는 것이므로 선택정렬이라고 함. 가장 왼쪽부터 작은수대로 정렬 코드 for i in range(len(array)): min_index = i for j in range(i+1, len(array)): if array[min_index] > array[j]: min_index= j #스와프 코드 array[i], array[min_index] = array[mi..
BFS&DFS_심화21) 인구이동 _ python
문제링크 https://www.acmicpc.net/problem/16234 16234번: 인구 이동 N×N크기의 땅이 있고, 땅은 1×1개의 칸으로 나누어져 있다. 각각의 땅에는 나라가 하나씩 존재하며, r행 c열에 있는 나라에는 A[r][c]명이 살고 있다. 인접한 나라 사이에는 국경선이 존재한다. 모 www.acmicpc.net 코드 # 인구이동 - bfs from collections import deque n, l , r = map(int, input().split()) graph = [] for _ in range(n): graph.append(list(map(int, input().split()))) dx = [0, 0, 1, -1] dy = [1, -1, 0, 0] def bfs(x, y)..
BFS&DFS_심화19) 연산자 끼워 넣기 _ python
문제링크 https://www.acmicpc.net/problem/14888 14888번: 연산자 끼워넣기 첫째 줄에 수의 개수 N(2 ≤ N ≤ 11)가 주어진다. 둘째 줄에는 A1, A2, ..., AN이 주어진다. (1 ≤ Ai ≤ 100) 셋째 줄에는 합이 N-1인 4개의 정수가 주어지는데, 차례대로 덧셈(+)의 개수, 뺄셈(-)의 개수, 곱 www.acmicpc.net 코드 import sys input = sys.stdin.readline n = int(input()) num = list(map(int, input().split())) op = list(map(int, input().split())) maximum = -1e9 minimum = 1e9 def dfs(depth, total, p..
BFS&DFS_심화15) 특정 거리의 도시 찾기 _ python
문제 링크 https://www.acmicpc.net/problem/18352 18352번: 특정 거리의 도시 찾기 첫째 줄에 도시의 개수 N, 도로의 개수 M, 거리 정보 K, 출발 도시의 번호 X가 주어진다. (2 ≤ N ≤ 300,000, 1 ≤ M ≤ 1,000,000, 1 ≤ K ≤ 300,000, 1 ≤ X ≤ N) 둘째 줄부터 M개의 줄에 걸쳐서 두 개 www.acmicpc.net 코드 # https://www.acmicpc.net/problem/18352 from collections import deque import sys f = sys.stdin.readline n, m, k, x = map(int, f().split()) graph = [[] for _ in range(n+1)] d..
구현_심화13) 치킨 배달 _ python
링크 https://www.acmicpc.net/problem/15686 15686번: 치킨 배달 크기가 N×N인 도시가 있다. 도시는 1×1크기의 칸으로 나누어져 있다. 도시의 각 칸은 빈 칸, 치킨집, 집 중 하나이다. 도시의 칸은 (r, c)와 같은 형태로 나타내고, r행 c열 또는 위에서부터 r번째 칸 www.acmicpc.net 코드 import itertools N, M = map(int, input().split()) city = [list(map(int, input().split())) for _ in range(N)] house = [] chicken = [] for i in range(N): for j in range(N): if city[i][j] == 1: house.append([..
[1544번] 사이클단어 with python
정답 비율 : 49.213% 언어 : python 레벨 : 실버 4 링크 https://www.acmicpc.net/problem/1544 1544번: 사이클 단어 사이클 단어는 어떤 단어를 원형 모양으로 차례대로 쓴 것이다. 따라서, 어떤 단어를 이렇게 쓴 후에 임의의 단어를 고른다. 그 후에 시계방향으로 차례대로 읽으면 그 것이 단어가 된다. 만약에 www.acmicpc.net 문제 사이클 단어는 어떤 단어를 원형 모양으로 차례대로 쓴 것이다. 따라서, 어떤 단어를 이렇게 쓴 후에 임의의 단어를 고른다. 그 후에 시계방향으로 차례대로 읽으면 그 것이 단어가 된다. 만약에 단어 A와 단어 B가 있을 때, 단어 B를 원형으로 써서, 단어 A와 같이 읽을 수 있으면, 두 단어는 같은 단어이다. 따라서, p..