본문 바로가기

백준903

[백준] 27172번 : 수 나누기 게임 (C++) 27172번 : 수 나누기 게임 문제) 《보드게임컵》을 준비하다 지친 은하는 보드게임컵 참가자들을 경기장에 몰아넣고 결투를 시키는 게임 《수 나누기 게임》을 만들었습니다. 《수 나누기 게임》의 규칙은 다음과 같습니다. 게임을 시작하기 전 각 플레이어는 1부터 1,000,000 사이의 수가 적힌 서로 다른 카드를 잘 섞은 뒤 한 장씩 나눠 가집니다. 매 턴마다 플레이어는 다른 플레이어와 한 번씩 결투를 합니다. 결투는 서로의 카드를 보여주는 방식으로 진행되며, 플레이어의 카드에 적힌 수로 다른 플레이어의 카드에 적힌 수를 나눴을 때, 나머지가 0이면 승리합니다. 플레이어의 카드에 적힌 수가 다른 플레이어의 카드에 적힌 수로 나누어 떨어지면 패배합니다. 둘 다 아니라면 무승부입니다. 승리한 플레이어는 1점을.. 2024. 2. 8.
[백준] 2866번 : 문자열 잘라내기 (C++) 2866번 : 문자열 잘라내기 문제) R개의 행과 C개의 열로 이루어진 테이블이 입력으로 주어진다. 이 테이블의 원소는 알파벳 소문자이다. 각 테이블의 열을 위에서 아래로 읽어서 하나의 문자열을 만들 수 있다. 예제 입력에서 dobarz adatak 이 주어지는 경우 "da", "od", "ba", "at", "ra", "zk"와 같이 6개의 문자열들이 만들어지게 된다. 만약 가장 위의 행을 지워도 테이블의 열을 읽어서 문자열이 중복되지 않는다면, 가장 위의 행을 지워주고, count의 개수를 1 증가시키는, 이 과정을 반복한다. 만약 동일한 문자열이 발견되는 경우, 반복을 멈추고 count의 개수를 출력 후 프로그램을 종료한다. 테이블이 주어질 경우 count의 값을 구해보자. 입력 : 첫 번째 줄에는.. 2024. 2. 8.
[백준] 24523번 : 내 뒤에 나와 다른 수 (C++) 24523번 : 내 뒤에 나와 다른 수 문제) 길이가 N인 수열 1 2 ⋯ A_1 , A_2 , ..., A_N이 주어진다. 1 ≤ i ≤ N인 정수 i마다 i < j ≤ N이고 A_i ≠ A_j인 정수 j중 최솟값을 출력하라. 만약 이러한 j가 없다면 −1을 출력하라. 입력 : 첫째 줄에 수열 A의 크기 N이 주어진다. 둘째 줄에는 1 2 ⋯ A_1 A_2 A_N이 공백으로 구분되어 주어진다. (1≤ N ≤10^6, −10^9≤ A_i ≤10^9) 입력으로 주어지는 모든 수는 정수이다. 출력 : 각 i마다 조건을 만족하는 최솟값 j를 출력하라. 만약 이러한 j가 없다면 −1을 출력하라. 풀이) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 2.. 2024. 2. 8.
[백준] 12991번 : 홍준이의 행렬 (C++) 12991번 : 홍준이의 행렬 문제) 홍준이에게는 길이가 N인 수열 2개 A와 B가 있습니다. 이때 N2 크기의 행렬을 만드는데, 행렬의 i행 j열의 원소는 수열 A의 i번째 원소와 수열 B의 j번째 원소의 곱으로 정의합니다. 홍준이는 이 원소들을 모두 정렬하였습니다. 홍준이는 정렬된 결과에서 K번째(1번부터 계산)에 위치하는 값이 궁금해졌습니다. 하지만 계산이 느린 홍준이는 정렬하는데 너무 시간이 오래 걸리기 때문에 여러분에게 도움을 요청하였습니다. 홍준이를 도와 K번째 원소의 값을 구하는 프로그램을 작성하세요. 입력 : 첫째 줄에 N과 K가 주어집니다. (1 ≤ N ≤ 30000, 1 ≤ K ≤ N2) 둘째 줄에 수열 A의 원소를 나타내는 N개의 정수가 공백을 사이에 두고 주어집니다. 셋째 줄에 수열.. 2024. 2. 7.