백준
-
백준21610) 마법사 상어와 비바라기 (lv.골드5)알고리즘/백준 2022. 8. 19. 17:41
https://www.acmicpc.net/problem/21610 21610번: 마법사 상어와 비바라기 마법사 상어는 파이어볼, 토네이도, 파이어스톰, 물복사버그 마법을 할 수 있다. 오늘 새로 배운 마법은 비바라기이다. 비바라기를 시전하면 하늘에 비구름을 만들 수 있다. 오늘은 비바라기 www.acmicpc.net 시뮬레이션 및 구현 유형의 문제이다. 문제의 단계는 다음과 같다. 이동방향은 (0, -1), (-1, -1), (-1, 0), (-1, 1), (0, 1), (1, 1), (1, 0), (1, -1)이다. n*n 만큼의 board와 , m 번의 이동방향 및 이동 카운트가 주어진다. 처음 구름의 위치는 (n-2, 0), (n-2, 1), (n-1, 0), (n-1, 1)이다. 구름이 주어진 ..
-
백준 14891) 톱니바퀴 (골드.5)알고리즘 2022. 8. 2. 19:11
https://www.acmicpc.net/problem/14891 14891번: 톱니바퀴 총 8개의 톱니를 가지고 있는 톱니바퀴 4개가 아래 그림과 같이 일렬로 놓여져 있다. 또, 톱니는 N극 또는 S극 중 하나를 나타내고 있다. 톱니바퀴에는 번호가 매겨져 있는데, 가장 왼쪽 톱니바퀴 www.acmicpc.net 시뮬레이션 유형의 문제이다. 문제의 조건은 다음과 같다. 1) 1은 시계방향 -1은 반시계방향을 말한다. 2) 주어진 시계의 회전을 실시할 때에는 양옆의 시계와 맞닿은 부분을 확인하여 만약 서로 다른 극을 가지고 있으면 회전, 아니면 회전하지 않는다. 3) 서로 같은 극을 가진 시계를 만날 때까지 회전은 퍼져나간다. 4) 최종 시계의 모양에서 12시 방향의 극이 N극일 때 각각 1, 2, 4,..
-
백준 14503) 로봇청소기 (골드.5)알고리즘 2022. 8. 2. 19:03
https://www.acmicpc.net/problem/14503 14503번: 로봇 청소기 로봇 청소기가 주어졌을 때, 청소하는 영역의 개수를 구하는 프로그램을 작성하시오. 로봇 청소기가 있는 장소는 N×M 크기의 직사각형으로 나타낼 수 있으며, 1×1크기의 정사각형 칸으로 나누어 www.acmicpc.net 시뮬레이션 유형의 문제이다. 문제의 조건은 다음과 같다. 1) 청소기가 바라보는 방향은 북동남서의 순서로 나타낸다. 2) 청소기가 바라보는 방향에 청소할 곳이 없거나 벽이면 왼쪽으로 회전한다. 3) 바라보는 방향에 청소할 곳이 있으면 이동하여 청소하고 해당 방향에서 반복한다. 4) 청소할 곳이 없으면 바라보는 방향을 유지하고 한칸 후진하여 해당 위치에서 반복한다. 5) 청소할 곳이 없고 후진하..
-
백준 16234) 인구이동 (골드.5)알고리즘 2022. 8. 2. 18:55
https://www.acmicpc.net/problem/16234 16234번: 인구 이동 N×N크기의 땅이 있고, 땅은 1×1개의 칸으로 나누어져 있다. 각각의 땅에는 나라가 하나씩 존재하며, r행 c열에 있는 나라에는 A[r][c]명이 살고 있다. 인접한 나라 사이에는 국경선이 존재한다. 모 www.acmicpc.net 문제의 유형은 그래프 탐색을 이용하여 연결된 부분을 탐색하는 우선탐색의 문제이다. 문제의 조건은 다음과 같다. 1) 상하좌우로 인접한 두 나라의 인구차가 L보다 크거나 같고 R보다 작거나 같으면 국경선이 열린다. 2) 조건에 해당하여 국경선이 열린 모든 나라를 연합이라고 한다. 3) 국경선이 열리면 인구이동에 의해 연합 각국의 인구수는 연합국의 인구수 총합 // 연합국의 수 가 된다..
-
백준 15686) 치킨배달 (골드.5)알고리즘 2022. 8. 2. 18:43
https://www.acmicpc.net/problem/15686 15686번: 치킨 배달 크기가 N×N인 도시가 있다. 도시는 1×1크기의 칸으로 나누어져 있다. 도시의 각 칸은 빈 칸, 치킨집, 집 중 하나이다. 도시의 칸은 (r, c)와 같은 형태로 나타내고, r행 c열 또는 위에서부터 r번째 칸 www.acmicpc.net 문제는 조건에 맞는 모든 경우의 수를 확인하고 최적의 값을 찾아내는 완전탐색 및 백트래킹 문제이다. 문제의 조건은 다음과 같다. 1) 가게(r1, c1)와 집(r2, c2)과의 거리는 |r1-r2| + |c1-c2|이다. 2) 최대 m개의 치킨 가게를 둘 수 있다. 3) 각각의 집에서 치킨 가게의 거리의 합이 가장 작을 때의 값을 구하라. 최대 m개의 치킨 가게를 둘 수 있을..
-
백준 17140) 이차원 배열과 연산 (골드.4)알고리즘 2022. 8. 2. 18:34
https://www.acmicpc.net/problem/17140 17140번: 이차원 배열과 연산 첫째 줄에 r, c, k가 주어진다. (1 ≤ r, c, k ≤ 100) 둘째 줄부터 3개의 줄에 배열 A에 들어있는 수가 주어진다. 배열 A에 들어있는 수는 100보다 작거나 같은 자연수이다. www.acmicpc.net 문제의 조건에 따라 구현하는 시뮬레이션 문제이다. 조건을 확인하면 다음과 같다. 1) 행의 갯수가 열의 갯수보다 많거나 같으면 R연산을 시행하고 그렇지 않으면 C연산을 실행한다. 2) 연산은 행 및 열의 원소와 원소의 갯수를 나타내고 가장 긴 행이나 열보다 작으면 0으로 채워주는 것을 말한다. 3) 만약 행이나 열이 100보다 크면 100 이상의 열이나 행은 자른다. 4) 한번의 연산..
-
백준 12865) 평범한 배낭 (골드.5)알고리즘 2022. 7. 20. 19:10
https://www.acmicpc.net/problem/12865 12865번: 평범한 배낭 첫 줄에 물품의 수 N(1 ≤ N ≤ 100)과 준서가 버틸 수 있는 무게 K(1 ≤ K ≤ 100,000)가 주어진다. 두 번째 줄부터 N개의 줄에 거쳐 각 물건의 무게 W(1 ≤ W ≤ 100,000)와 해당 물건의 가치 V(0 ≤ V ≤ 1,000) www.acmicpc.net 무게가 제한된 가방에 넣을 수 있는 물건들의 최대 가치를 찾는 문제이다. 냅색(Knapsack) 알고리즘으로 유명한 문제다. global n, k, product, isUsed n, k = map(int, input().split()) product = [] dp = [0] * (k+1) for _ in range(n): w, v ..
-
백준 11054) 가장 긴 바이토닉 부분 수열알고리즘 2022. 7. 20. 19:02
https://www.acmicpc.net/problem/11054 11054번: 가장 긴 바이토닉 부분 수열 첫째 줄에 수열 A의 크기 N이 주어지고, 둘째 줄에는 수열 A를 이루고 있는 Ai가 주어진다. (1 ≤ N ≤ 1,000, 1 ≤ Ai ≤ 1,000) www.acmicpc.net 가장 긴 바이토닉 수열이란 a1 reversed_numbers[j]: dp2[i] = max(dp2[i], dp2[j]+1) result = [(dp1[i]+dp2[n-1-i]-1) for i in range(n)] print(max(result)) ( 풀이에 참고한 사이트 ) https://seohyun0120.tistory.com/entry/%EB%B0%B1%EC%A4%80-11054-%EA%B0%80%EC%9E..