본문 바로가기

백준88

[백준 15684] 사다리 조작, C++ https://www.acmicpc.net/problem/15684 15684번: 사다리 조작 사다리 게임은 N개의 세로선과 M개의 가로선으로 이루어져 있다. 인접한 세로선 사이에는 가로선을 놓을 수 있는데, 각각의 세로선마다 가로선을 놓을 수 있는 위치의 개수는 H이고, 모든 세로선이 같은 위치를 갖는다. 아래 그림은 N = 5, H = 6 인 경우의 그림이고, 가로선은 없다. 초록선은 세로선을 나타내고, 초록선과 점선이 교차하는 점은 가로선을 놓을 수 있는 점이다. 가로선은 인접한 두 세로선을 연결해야 한다. 단, 두 가로선이 연속하거나 서로 www.acmicpc.net 본 문제는 삼성 SW 역량 테스트 기출 문제다. 문제를 간단히 설명하면 사다리 타기 게임에서 가로선을 3개 이하로 추가하여 1은 1.. 2020. 3. 2.
[백준 1963] 소수 경로 https://www.acmicpc.net/problem/1963 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 #include #include #include #include using namespace std; bool chk[10000]; bool prime[10000]; bool is_right(int x) { if (x > 1000 && x 2020. 2. 26.
[백준 11559] Puyo Puyo, C++ https://www.acmicpc.net/problem/11559 11559번: Puyo Puyo 현재 주어진 상황에서 몇연쇄가 되는지 출력하라. (하나도 터지지 않는다면 0을 출력하면 된다.) www.acmicpc.net 본 문제는 2015 연세대학교 프로그래밍 경시대회 C번 문제다. 뿌요뿌요를 구현하는 문제다. 어렸을 때 많이했던 게임인데 문제로 만나니 참 반갑다. (못 풀었으면 안반가웠을 듯ㅎㅎ) 12 x 6 크기에 ' . '는 빈 공간이고 알파벳 대문자는 뿌요를 나타낸다. 문제 해결 과정은 다음과 같다. 인접한 4개의 뿌요가 같은 색이면 터진다. 터진 뿌요 위에 다른 뿌요가 있으면 밑으로 내려온다. 뿌요가 안터지면 프로그램을 끝낸다. 처음에 문제를 풀면서 뿌요가 터지고 바로 위에있는 뿌요를 밑으.. 2020. 2. 25.
[백준 2573] 빙산, C++ https://www.acmicpc.net/problem/2573 2573번: 빙산 첫 줄에는 이차원 배열의 행의 개수와 열의 개수를 나타내는 두 정수 N과 M이 한 개의 빈칸을 사이에 두고 주어진다. N과 M은 3 이상 300 이하이다. 그 다음 N개의 줄에는 각 줄마다 배열의 각 행을 나타내는 M개의 정수가 한 개의 빈 칸을 사이에 두고 주어진다. 각 칸에 들어가는 값은 0 이상 10 이하이다. 배열에서 빙산이 차지하는 칸의 개수, 즉, 1 이상의 정수가 들어가는 칸의 개수는 10,000 개 이하이다. 배열의 첫 번째 행과 열, 마지 www.acmicpc.net 본 문제는 2006 한국정보올림피아드 초등부 2번 문제다. 지구 온난화로 인하여 북극의 빙산이 녹는다. 바닷물은 0, 빙산은 10이하의 자연.. 2020. 2. 25.
[백준 10868] 최솟값, C++ https://www.acmicpc.net/problem/10868 10868번: 최솟값 N(1 ≤ N ≤ 100,000)개의 정수들이 있을 때, a번째 정수부터 b번째 정수까지 중에서 제일 작은 정수를 찾는 것은 어려운 일이 아니다. 하지만 이와 같은 a, b의 쌍이 M(1 ≤ M ≤ 100,000)개 주어졌을 때는 어려운 문제가 된다. 이 문제를 해결해 보자. 여기서 a번째라는 것은 입력되는 순서로 a번째라는 이야기이다. 예를 들어 a=1, b=3이라면 입력된 순서대로 1번, 2번, 3번 정수 중에서 최솟값을 찾아야 한다. 각각의 정수들은 www.acmicpc.net 본 문제는 구간의 최솟값을 구하는 문제다. 근데 입력이 100,000이다 그래서 O(n^2)으로 풀 수 없다. 입력이 큰데 구간의 최솟.. 2020. 2. 21.
[백준 11404] 플로이드, C++ https://www.acmicpc.net/problem/11404 11404번: 플로이드 첫째 줄에 도시의 개수 n(1 ≤ n ≤ 100)이 주어지고 둘째 줄에는 버스의 개수 m(1 ≤ m ≤ 100,000)이 주어진다. 그리고 셋째 줄부터 m+2줄까지 다음과 같은 버스의 정보가 주어진다. 먼저 처음에는 그 버스의 출발 도시의 번호가 주어진다. 버스의 정보는 버스의 시작 도시 a, 도착 도시 b, 한 번 타는데 필요한 비용 c로 이루어져 있다. 시작 도시와 도착 도시가 같은 경우는 없다. 비용은 100,000보다 작거나 같은 자연수이다. 시작 www.acmicpc.net 본 문제는 제목을 통해 알 수 있다. 바로 플로이드 와샬 알고리즘을 이용해서 푸는 문제다. 플로이드 와샬 알고리즘은 간단하다. 1 2.. 2020. 2. 21.