본문 바로가기

분류 전체보기

(191)
딱지놀이( BOJ 14696 ) 문제 : https://www.acmicpc.net/problem/14696 14696번: 딱지놀이 표준 입력으로 다음 정보가 주어진다. 첫 번째 줄에는 딱지놀이의 총 라운드 수를 나타내는 자연수 N이 주어진다. N 은 1 이상 1,000 이하이다. 다음 줄에는 라운드 1에서 어린이 A가 내는 딱지에 나 www.acmicpc.net 문제 파악하기 A와 B의 딱지놀이 결과를 출력하는 문제입니다. 딱지에는 별(★), 동그라미(●), 네모(■), 세모(▲) 중 하나의 그림이 그려져있으며 우리는 A와 B가 가지고 있는 모든 딱지의 개수를 파악하여 승패를 알아내야 합니다. 승패를 가르는 중요한 요소는 바로 그림의 가중치라고 할 수 있습니다. 모든 그림에는 각기 다른 가중치가 부여되어 있으며, 그림 사이의 대소관계..
369 게임( BOJ 10802 ) 문제 : https://www.acmicpc.net/problem/10802 10802번: 369 게임 여러 사람이 둘러 앉아 즐기는 369 게임은 다음과 같은 규칙을 가지고 있다. 규칙: 양의 정수 A에서 시작하여 차례로 사람들 이 돌아가면서 숫자를 하나씩 증가하면서 불러 나간다. 단, 부르는 숫 www.acmicpc.net 문제 파악하기 369게임을 진행 하면서 특정 구간동안 몇 번의 박수를 치는지 구하는 문제입니다. 기존에는 숫자에 3, 6, 9 중 하나라도 포함된다면 박수치는 규칙에서 3의 배수이면 박수를 친다는 새로운 규칙이 추가되었습니다. 물론 반복문을 사용하면 손쉽게 구할 수 있지만 입력되는 숫자의 범위가 너무도 크기 때문에 새로운 알고리즘이 필요합니다. 문제 해결하기 이 문제는 결국 A ~..
막대기( BOJ 17608 ) 문제 : https://www.acmicpc.net/problem/17608 17608번: 막대기 아래 그림처럼 높이만 다르고 (같은 높이의 막대기가 있을 수 있음) 모양이 같은 막대기를 일렬로 세운 후, 왼쪽부터 차례로 번호를 붙인다. 각 막대기의 높이는 그림에서 보인 것처럼 순서대로 www.acmicpc.net 문제 파악하기 막대기를 일렬로 세운 후 오른쪽에서 바라보았을 때, 보이는 막대기의 개수를 출력하는 문제입니다. 오른쪽에서 보인다는 의미는 막대기의 높이가 오른쪽부터 순차적으로 증가해야 한다는 걸 말하며, 보이는 막대기의 총 개수를 구하기 위해서는 오른쪽부터 탐색을 시작하면 됩니다. 문제 해결하기 막대기가 보인다는 건 기존 가장 높았던 막대기보다 좀 더 크다는 의미입니다. 따라서, 지금까지 가장..
369( BOJ 17614 ) 문제 : https://www.acmicpc.net/problem/17614 17614번: 369 민수는 같은 반 친구들과 369게임을 하고 있다. 369게임은 여러 명이 원형으로 둘러 앉아 시작 위치의 사람이 1을 외치며 시작된다. 이후 시계방향으로 돌아가며 2, 3, 4와 같이 1씩 증가된 수가 자 www.acmicpc.net 문제 파악하기 1부터 시작해서 N까지 369 게임이 진행되었을 때, 나오는 모든 박수의 수를 구하는 전형적인 문제입니다. N의 범위가 최대 106이기 때문에 단순히 반복문을 사용하면 문제를 해결할 수 있습니다. 문제 해결하기 369 게임은 숫자에 3, 6, 9가 포함된 개수만큼 박수를 쳐야 하는 게임입니다. 따라서, 1부터 N까지 숫자를 모두 확인하면서 범위 내 숫자 i에 3,..
Awkward Digits( BOJ 5929 ) 문제 : https://www.acmicpc.net/problem/5929 5929번: Awkward Digits Input Details When Bessie incorrectly converts N into base 2, she writes down "1010". When she incorrectly converts N into base 3, she writes down "212". Output Details The correct value of N is 14 ("1110" in base 2, "112" in base 3). www.acmicpc.net 문제 파악하기 베시가 잘못 바꾼 2진수와 3진수를 파악하여 원래 숫자를 찾는 문제입니다. 베시는 항상 1자리 숫자를 잘못 쓴다는 사실을 파악한다면 모..
회문( BOJ 17609 ) 문제 : https://www.acmicpc.net/problem/17609 17609번: 회문 각 문자열이 회문인지, 유사 회문인지, 둘 모두 해당되지 않는지를 판단하여 회문이면 0, 유사 회문이면 1, 둘 모두 아니면 2를 순서대로 한 줄에 하나씩 출력한다. www.acmicpc.net 문제 파악하기 주어진 문자열이 회문인지, 아니면 유사회문인지, 아니면 일반 문자열인지 확인하는 문제입니다. 해당 문자가 회문인 판단은 반복문으로 간단하게 할 수 있지만, 유사회문인지 확인하기 위해서는 별도의 알고리즘이 필요합니다. 저는 여기서 브루트포스 알고리즘을 활용했습니다. 문제 해결하기 우선 유사회문인지 판단하는 가장 간단한 알고리즘은 문자열 속 문자를 하나씩 제거하고 확인하는 방법이 있습니다. 이 방법은 정확하..
박 터뜨리기( BOJ 19939 ) 문제 : https://www.acmicpc.net/problem/19939 19939번: 박 터뜨리기 $N$개의 공을 $K$개의 바구니에 문제의 규칙을 만족하면서 나눠 담을 수 있다면, 가장 많이 담긴 바구니와 가장 적게 담긴 바구니의 공의 개수 차이를 출력한다. 나눠 담을 수 없는 경우에는 -1을 www.acmicpc.net 문제 파악하기 N개의 공을 조건에 맞게 K개의 바구니에 넣었을 때, { 가장 공이 많은 바구니 - 가장 공이 적은 바구니 }의 최솟값을 구하는 문제입니다. 조건은 까다롭지 않습니다. N개의 공이 모두 들어가야하고, K개의 바구니에는 적어도 1개 이상의 공이 들어가야 하며, 어느 바구니에도 동일한 개수의 공이 들어갈 수 없습니다. 3가지 조건을 만족하는 여러 가지 경우 중 공이 가..
피자 오븐( BOJ 19940 ) 문제 : https://www.acmicpc.net/problem/19940 19940번: 피자 오븐 각각의 테스트 케이스마다 5개의 정수를 한 줄에 공백으로 구분해서 출력한다. 이 정수는 입력으로 주어진 시간을 만들기 위해서 ADDH, ADDT, MINT, ADDO, MINO 버튼을 누르는 횟수를 출력한 것이다. 최 www.acmicpc.net 문제 파악하기 전자 오븐의 버튼을 최소로 누르는 방법을 출력하는 문제입니다. 버튼은 총 5개가 있으며, 각각의 경우에 따라 누르는 방법을 달리 해야하기 때문에 최적의 조건을 떠올려야 하는 문제입니다. 문제 해결하기 전자 오븐의 버튼은 총 5개 있습니다. 그 중에서 가장 무식하게 사용하기 쉬은 버튼은 바로 ADDH(t+60) 입니다. 60분 만큼 증가시키는 방법은..