본문 바로가기

구현

(60)
[백준 / BOJ] 14720 우유 축제 문제 출처 www.acmicpc.net/problem/14720 14720번: 우유 축제 영학이는 딸기우유, 초코우유, 바나나우유를 좋아한다. 입맛이 매우 까다로운 영학이는 자신만의 우유를 마시는 규칙이 있다. 맨 처음에는 딸기우유를 한 팩 마신다. 딸기우유를 한 팩 마신 후�� www.acmicpc.net 영학이는 딸기우유 초코우유 바나나 우유를 좋아한다. 영학이는 가게를 지나가면서 우유를 먹을건데, 무조건 딸기우유 초코우유 바나나우유 순서로 먹어야한다. (초코우유를 먹지않고, 딸기우유만 먹었다면 바나나 우유를 먹지못한다.) 이때, 영학이가 먹을수있는 우유의 최대 갯수를 구하는문제다. 풀이 딸기우유 : 0, 초코유우 : 1, 바나나우유 : 2 라 할때 영학이가 우유를 먹기 시작할수있는 위치는 0이다.(..
[백준 / BOJ] 3213 피자 문제 출처 : www.acmicpc.net/problem/3213 3213번: 피자 첫째 줄에 친구의 수 N이 주어진다. (1 ≤ N ≤ 10,000) 다음 N개 줄에는 각 친구가 먹을 수 있는 피자의 양이 주어진다. 이 값은 항상 분수이며, 1/4, 1/2, 3/4중 하나이다. www.acmicpc.net 상근이의 친구들은 피자를 먹는데, 무조건 1/4, 3/4, 1/2크기만큼 먹을수있다. 이때, 상근이가 시켜야하는 최소한의 피자양을 구하는문제다. (1/4 3/4 1/2 만큼의 조각을 나눠서 먹는것이 아닌, 한번에 먹어야한다 ) 풀이 예제를 전부 더해보면 2가 나와서 2판만 시키면되는데, 출력은 3이나와서 뭔가했다... 알고보니 (번역본에는 안 나와있는데 본문에는 나와있음) 조각을 나눠서 먹으면 안되고..
[백준 / BOJ] 3042 트리플렛 문제 출처 : www.acmicpc.net/problem/3042 3042번: 트리플렛 상근이와 창영이는 트리플렛이라는 게임을 하고 있다. 이 게임을 하려면 칠판에 N*N 그리드를 그려야 한다. 그 다음 알파벳 대문자를 적절히 각 칸에 써 넣는다. 한 알파벳을 여러 칸에 쓸 수는 �� www.acmicpc.net N*N그리드가 주어지고, 각 칸에 알파벳 혹은 '.'이 주어진다. 이때 3개의 알파벳이 한 직선을 이루면 이를 트리플렛 이라고 한다. 예를들어, ...A ..B. .C.. D... 은 ABC가 하나의 트리플렛을 이룬다, BCD가 트리플렛을 이룬다... 라고 생각하면된다. 풀이 그냥 완전탐색을 할경우, N이 최대 100이고 N*N이므로, 칸의 총 갯수는 100*100 = 10000개이다. 여기서 ..
[백준 / BOJ] 8901 화학 제품 문제 출처 : www.acmicpc.net/problem/8901 8901번: 화학 제품 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 두 줄로 이루어져 있다. 첫째 줄에는 상근이가 가지고 있는 A, B, C의 양이 주어진다. 둘째 줄에는 AB, BC, CA의 가격이 주어진다. www.acmicpc.net 상근이는 세 종류의 화학물질 A, B, C를 가지고 있다. 화학물질을 AB, BC, CA로 조합해서 세가지 제품을 만들수있는데, A,B,C의 갯수와 AB,BC,CA의 가격이 주어졌을때, 상근이가 얻는 최대이익을 출력하는 문제다. 풀이 완전탐색으로 풀리는문제다. 하지만, 그냥 모든경우를 봐줄경우, 1000 * 500 * 250 * 250 ?? 처럼 나와서 시간초과가 난다. 한가지 제..
[백준 / BOJ] 15658 연산자 끼워넣기 (2) 문제 출처 : www.acmicpc.net/problem/15658 15658번: 연산자 끼워넣기 (2) N개의 수로 이루어진 수열 A1, A2, ..., AN이 주어진다. 또, 수와 수 사이에 끼워넣을 수 있는 연산자가 주어진다. 연산자는 덧셈(+), 뺄셈(-), 곱셈(×), 나눗셈(÷)으로만 이루어져 있다. 연산자의 개수� www.acmicpc.net N개의 수가 주어지고, +, -, *, /연산자의 갯수가 주어진다. 이때, N개의 수와 연산자들로 만들수있는 조합중 최댓값과 최솟값을 찾는문제다. (단, 주어진 수의 순서를 꾸면 안된다.) 풀이 백트래킹을 이용한, 구현문제다. 연산자와 숫자를 전부 사용하지않고도 최댓값, 최솟값이 나올수있다는 조건을 주의하면서 코딩하자. ope[i] = 연산자 사용가능 ..
[백준 / BOJ] 12933 오리 문제 출처 : www.acmicpc.net/problem/12933 12933번: 오리 첫째 줄에 영선이가 녹음한 소리가 주어진다. 소리의 길이는 5보다 크거나 같고, 2500보다 작거나 같은 자연수이고, 'q','u','a','c','k'로만 이루어져 있다. www.acmicpc.net 오리의 울음소리는 quack이다. 'q', 'u', 'a', 'c', 'k'로 이루어진 문자열이 주어졌을때, 존재할수있는 오리의 최소수를 구하는 문제다. 풀이 구현문제다. 가능한 최소한의 오리 수를 구해야하므로, 'q'를 만났을때부터 시작해서 오리의 울음(quack)을 만들때마다 각 문자열 위치를 체크해준다. 한 오리를 최대한 많이 울게하면 된다. 예를들어, 울음소리가 quqacukqauackck로 주어졌다면 0번 인덱..
[백준 / BOJ] 5635 생일 문제 출처 : www.acmicpc.net/problem/5635 5635번: 생일 어떤 반에 있는 학생들의 생일이 주어졌을 때, 가장 나이가 적은 사람과 가장 많은 사람을 구하는 프로그램을 작성하시오. www.acmicpc.net 각 학생이 이름 년도 월 날짜 로 주어질때, 가장 나이가 많은 학생의 이름, 가장 나이가 적은 학생의 이름을 출력하는 문제다. 풀이 pair로 선언하고 오름차순 정렬하면 끝나는 문제다. vector vec; 처럼 선언하고 {{년도, 월},{날짜, 이름}}이 들어갔을때, 이를 오름차순 정렬하면, 1. 빠른년도순으로 2. 년도가 같으면 3. 빠른 월 순으로 4. 월이 같다면 빠른 날짜 순으로 자동 정렬해준다. 각 벡터의 끝과 시작을 출력하면 된다. 소스코드 https://gith..
[백준 / BOJ] 11067 모노톤 길 문제 출처 : www.acmicpc.net/problem/11067 11067번: 모노톤길 입력 데이터는 표준입력을 사용한다. 입력은 T개의 테스트 데이터로 구성된다. 입력의 첫 번째 줄에는 테스트 데이터의 개수 T가 정수로 주어진다. 각 테스트 데이터의 첫 번째 줄에는 카페의 수 www.acmicpc.net 산책코스가있다. 산책코스에는 코너마다 카페가있고, 코스관리자인 김씨는 산책로를 따라갈때 (X,Y)에있는 카페를 몇번째로 방문하는지 알고싶다. n개의 카페 위치(X,Y)가 주어졌을때 카페를 몇번 반복하는지 찾는 문제다. 단, X를 줄일필요없이 항상 모든카페를 방문할수있고, 같은 번호를 갖는 카페는 없다. 모든 코너에서는 90도로 회전해서 이동만할수있다.(대각선 이동이 안됨.) 풀이 우선, 제한시간이 ..