전체 글 177

백준 1996 : 프린터 큐

문제 링크입니다 https://www.acmicpc.net/problem/1966 1966번: 프린터 큐 문제 여러분도 알다시피 여러분의 프린터 기기는 여러분이 인쇄하고자 하는 문서를 인쇄 명령을 받은 ‘순서대로’, 즉 먼저 요청된 것을 먼저 인쇄한다. 여러 개의 문서가 쌓인다면 Queue 자료구조에 쌓여서 FIFO - First In First Out - 에 따라 인쇄가 되게 된다. 하지만 상근이는 새로운 프린터기 내부 소프트웨어를 개발하였는데, 이 프린터기는 다음과 같은 조건에 따라 인쇄를 하게 된다. 현재 Queue의 가장 앞에 있는 문서의 ‘중요도’를 www.acmicpc.net [소스코드] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23..

백준 14500 : 테트로미노

문제 링크입니다 https://www.acmicpc.net/problem/14500 14500번: 테트로미노 폴리오미노란 크기가 1×1인 정사각형을 여러 개 이어서 붙인 도형이며, 다음과 같은 조건을 만족해야 한다. 정사각형은 서로 겹치면 안 된다. 도형은 모두 연결되어 있어야 한다. 정사각형의 변끼리 연결되어 있어야 한다. 즉, 꼭짓점과 꼭짓점만 맞닿아 있으면 안 된다. 정사각형 4개를 이어 붙인 폴리오미노는 테트로미노라고 하며, 다음과 같은 5가지가 있다. 아름이는 크기가 N×M인 종이 위에 테트로미노 하나를 놓으려고 한다. 종이는 1×1 크기의 칸으로 나누 www.acmicpc.net 5가지의 테트로미노를 회전 및 대칭을 시켜서 나올 수 있는 모든 경우를 미리 만들어놓고 주어진 입력과 비교하여 하나..

백준 14889 : 스타트와 링크

문제 링크입니다 https://www.acmicpc.net/problem/14889 14889번: 스타트와 링크 예제 2의 경우에 (1, 3, 6), (2, 4, 5)로 팀을 나누면 되고, 예제 3의 경우에는 (1, 2, 4, 5), (3, 6, 7, 8)로 팀을 나누면 된다. www.acmicpc.net 1. 입력받은 정보, n개의 인덱스로부터 n/2개를 중복되지 않게 고른다. 2. 고른 인덱스를 스타트 팀, 고르지 않은 인덱스를 링크 팀으로 나눈다. 3. 각 팀에서 2명(2개의 인덱스)을 골라 능력치를 누적하여 더하면서 각 팀의 능력치를 구한다. 4. 모든 경우에 대해서 각 팀의 능력치의 최소 차이를 구하면 됩니다! [소스코드 + 주석] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15..

백준 16234 : 인구 이동

문제 링크입니다 https://www.acmicpc.net/problem/16234 16234번: 인구 이동 N×N크기의 땅이 있고, 땅은 1×1개의 칸으로 나누어져 있다. 각각의 땅에는 나라가 하나씩 존재하며, r행 c열에 있는 나라에는 A[r][c]명이 살고 있다. 인접한 나라 사이에는 국경선이 존재한다. 모든 나라는 1×1 크기이기 때문에, 모든 국경선은 정사각형 형태이다. 오늘부터 인구 이동이 시작되는 날이다. 인구 이동은 다음과 같이 진행되고, 더 이상 아래 방법에 의해 인구 이동이 없을 때까지 지속된다. 국경선을 공유하는 두 나라의 인구 차이가 L명 www.acmicpc.net 1. 인구 이동이 가능한 나라들을 bfs를 통해 찾고 인구 이동을 시킨다. (단, 하루 동안 같은 나라가 두 번 인구..

백준 1018 : 체스판 다시 칠하기

문제 링크입니다 https://www.acmicpc.net/problem/1018 1018번: 체스판 다시 칠하기 첫째 줄에 N과 M이 주어진다. N과 M은 8보다 크거나 같고, 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에는 보드의 각 행의 상태가 주어진다. B는 검은색이며, W는 흰색이다. www.acmicpc.net 두 가지 경우의 8 x 8 체스판을 만들어 놓고 입력받은 체스판에서 8 x 8로 탐색할 수 있는 모든 경우를 탐색하며 만들어놓은 체스판과 비교하며 다른 칸의 개수를 세어주어 최솟값을 찾는 문제였습니다. [소스코드] 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 ..

백준 2503 : 숫자 야구

문제 링크입니다 https://www.acmicpc.net/problem/2503 2503번: 숫자 야구 첫째 줄에는 민혁이가 영수에게 몇 번이나 질문을 했는지를 나타내는 1 이상 100 이하의 자연수 N이 주어진다. 이어지는 N개의 줄에는 각 줄마다 민혁이가 질문한 세 자리 수와 영수가 답한 스트라이크 개수를 나타내는 정수와 볼의 개수를 나타내는 정수, 이렇게 총 세 개의 정수가 빈칸을 사이에 두고 주어진다. www.acmicpc.net 111부터 999까지 입력받은 정보와 비교하여 정답일 가능성이 있는 수인지 판단하고, 정답일 가능성이 있는 수라면 개수를 세어주면 되는 문제였습니다. [소스코드] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23..

백준 6603 : 로또

문제 링크입니다 https://www.acmicpc.net/problem/6603 6603번: 로또 문제 독일 로또는 {1, 2, ..., 49}에서 수 6개를 고른다. 로또 번호를 선택하는데 사용되는 가장 유명한 전략은 49가지 수 중 k(k>6)개의 수를 골라 집합 S를 만든 다음 그 수만 가지고 번호를 선택하는 것이다. 예를 들어, k=8, S={1,2,3,5,8,13,21,34}인 경우 이 집합 S에서 수를 고를 수 있는 경우의 수는 총 28가지이다. ([1,2,3,5,8,13], [1,2,3,5,8,21], [1,2,3,5,8,34], [1,2 www.acmicpc.net 1. 입력으로 주어지는 k개의 수 중에서 재귀호출을 이용해 6개를 고른다. 2. 6개의 수를 출력한다. 중복된 수를 고르지 ..

백준 15686 : 치킨 배달

문제 링크입니다 https://www.acmicpc.net/problem/15686 15686번: 치킨 배달 크기가 N×N인 도시가 있다. 도시는 1×1크기의 칸으로 나누어져 있다. 도시의 각 칸은 빈 칸, 치킨집, 집 중 하나이다. 도시의 칸은 (r, c)와 같은 형태로 나타내고, r행 c열 또는 위에서부터 r번째 칸, 왼쪽에서부터 c번째 칸을 의미한다. r과 c는 1부터 시작한다. 이 도시에 사는 사람들은 치킨을 매우 좋아한다. 따라서, 사람들은 "치킨 거리"라는 말을 주로 사용한다. 치킨 거리는 집과 가장 가까운 치킨집 사이의 거리이다. 즉, 치킨 거리는 www.acmicpc.net 1. 도시의 정보 중 빈칸을 제외한 치킨집과 집의 좌표를 vector를 사용해 입력받는다. (어차피 이 문제의 경우 ..

백준 1065 : 한수

문제 링크입니다 https://www.acmicpc.net/problem/1065 1065번: 한수 어떤 양의 정수 X의 자리수가 등차수열을 이룬다면, 그 수를 한수라고 한다. 등차수열은 연속된 두 개의 수의 차이가 일정한 수열을 말한다. N이 주어졌을 때, 1보다 크거나 같고, N보다 작거나 같은 한수의 개수를 출력하는 프로그램을 작성하시오. www.acmicpc.net 어떤 양의 정수 X의 자리수가 등차수열을 이루려면, 세 자리수가 되어야 합니다. 문제에 나와있다시피, 등차수열은 연속된 두 개의 수의 차이가 일정해야 하는데 한 자리수와 두 자리수는 그 수 자체가 무조건 등차수열입니다. 1. 입력받은 자연수가 100보다 작다면, 그 수를 출력한다. 2. 100부터 입력받은 수까지 '자리수가 등차수열을 ..