본문 바로가기

전체 글133

[백준 1038] 감소하는 수, C++ https://www.acmicpc.net/problem/1038 1038번: 감소하는 수 음이 아닌 정수 X의 자릿수가 가장 큰 자릿수부터 작은 자릿수까지 감소한다면, 그 수를 감소하는 수라고 한다. 예를 들어, 321과 950은 감소하는 수지만, 322와 958은 아니다. N번째 감소하는 수를 출력하는 프로그램을 작성하시오. 0은 0번째 감소하는 수이고, 1은 1번째 감소하는 수이다. 만약 N번째 감소하는 수가 없다면 -1을 출력한다. www.acmicpc.net 본 문제는 정수 X의 자릿수가 가장 큰 자릿수부터 작은 자릿수까지 감소하면 X를 감소하는 수라고 한다. 예) 321, 950 입력의 크기가 1,000,000 보자 작거나 같을 때, N번째 감소하는 수를 출력하시오, 단, 0은 0번째 감소하는.. 2020. 3. 2.
[백준 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.
[백준 1916] 최소비용 구하기, C++ https://www.acmicpc.net/problem/1916 1916번: 최소비용 구하기 첫째 줄에 도시의 개수 N(1 ≤ N ≤ 1,000)이 주어지고 둘째 줄에는 버스의 개수 M(1 ≤ M ≤ 100,000)이 주어진다. 그리고 셋째 줄부터 M+2줄까지 다음과 같은 버스의 정보가 주어진다. 먼저 처음에는 그 버스의 출발 도시의 번호가 주어진다. 그리고 그 다음에는 도착지의 도시 번호가 주어지고 또 그 버스 비용이 주어진다. 버스 비용은 0보다 크거나 같고, 100,000보다 작은 정수이다. 그리고 M+3째 줄에는 우리가 구하고자 하는 구간 www.acmicpc.net 본 문제는 다익스트라를 이용하여 풀 수 있다. 다익스트라 알고리즘의 설명은 링크를 참고하길 바란다. 다익스트라 알고리즘에서 시간을.. 2020. 2. 21.
[백준 14891] 톱니바퀴, C++ https://www.acmicpc.net/problem/14891 14891번: 톱니바퀴 첫째 줄에 1번 톱니바퀴의 상태, 둘째 줄에 2번 톱니바퀴의 상태, 셋째 줄에 3번 톱니바퀴의 상태, 넷째 줄에 4번 톱니바퀴의 상태가 주어진다. 상태는 8개의 정수로 이루어져 있고, 12시방향부터 시계방향 순서대로 주어진다. N극은 0, S극은 1로 나타나있다. 다섯째 줄에는 회전 횟수 K(1 ≤ K ≤ 100)가 주어진다. 다음 K개 줄에는 회전시킨 방법이 순서대로 주어진다. 각 방법은 두 개의 정수로 이루어져 있고, 첫 번째 정수는 회전시킨 톱니바퀴 www.acmicpc.net 소스 코드 추가+) // 쓸때없이 어렵게 코딩해서 쉽게 다시 코딩하였습니다. // 아마도 이전 소스코드는 비트마스크 뽕에 차있었을 때.. 2020. 2. 20.