본문 바로가기

백준42

[백준] 2164번 문제출처: https://www.acmicpc.net/problem/2164 2164번: 카드2 N장의 카드가 있다. 각각의 카드는 차례로 1부터 N까지의 번호가 붙어 있으며, 1번 카드가 제일 위에, N번 카드가 제일 아래인 상태로 순서대로 카드가 놓여 있다. 이제 다음과 같은 동작을 카드가 www.acmicpc.net 이전에 푼 요세푸스 문제를 풀었다면 큐로 푸는 것은 어렵지 않다. 하지만 문제를 읽는 중 규칙을 발견해서, 조금 돌아가서 빠르고 정확한 사칙연산 문제로도 풀어보았다. 우선 큐, 덱을 이용한 정석적인 풀이다. ​ 구현 자체는 눈으로 봐도 쉽게 이해가 된다. 요세푸스 문제에서 다룬 것이기 때문에.. 문제에서 말한대로 처음 시작할때 맨 위의 장을 버리고(popleft), 그 다음 장은 맨 뒤.. 2022. 6. 16.
[백준] 2747번 문제출처: https://www.acmicpc.net/problem/2747 2747번: 피보나치 수 피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 된다. 이를 식으로 써보면 Fn = Fn-1 + Fn-2 (n ≥ 2)가 www.acmicpc.net 고등과정에서 처음으로 본 피보나치 수열이다. 문제 풀면서 피보나치 수 문제라는거 몰라서 노가다 진짜 많이 했는데... ,,,,이젠알고있다... 근데 정말 어렵거나 해서 식을 세우는데 한계 있는 문제는 여전히 노가다를 하기도 한다(ㅋㅋㅋ)​ 일단 문제를 맞혀야하니까! 우선 num 배열을 선언해주고, 방을 두 개 만들어서 0번째와 1번째 값은 넣어준다. 피보.. 2022. 6. 15.
[백준] 10103번 문제출처: https://www.acmicpc.net/problem/10103 10103번: 주사위 게임 첫 라운드는 상덕이의 승리이다. 따라서 창영이는 6점을 잃게 된다. 두 번째 라운드는 두 사람의 숫자가 같기 때문에, 아무도 점수를 잃지 않고 넘어간다. 세 번째 라운드의 승자는 창영이이기 www.acmicpc.net 두 사람(c,s)의 점수는 100점으로 시작한다. 두 사람이 굴린 두 주사위의 크기로 우열을 가렸을 때, 작은 수가 나온 사람이 큰 수가 나온 사람의 주사위 수만큼 점수를 잃는다. 반복하는 게임횟수만큼 말그대로 구현해주면 된다. ​ 2022. 6. 15.
[백준] 7568번 문제출처: https://www.acmicpc.net/problem/7568 7568번: 덩치 우리는 사람의 덩치를 키와 몸무게, 이 두 개의 값으로 표현하여 그 등수를 매겨보려고 한다. 어떤 사람의 몸무게가 x kg이고 키가 y cm라면 이 사람의 덩치는 (x, y)로 표시된다. 두 사람 A 와 B의 덩 www.acmicpc.net 브루트포스 알고리즘인데, 먼저 브루투 포스 알고리즘에 대해 간단히 이야기 하자면 이렇다. 주어진 경우의 모든 경우의 수를 구한다. 그리고 그 중에서 원하는 입력값에 맞는 값을 찾아낸다. 이러기 위해선 완전 탐색이라는 것을 해야 예외없이 완벽하게 수행할 수 있다. ​ 브루트 포스는 선형 구조일 때는 순차 탐색을, 비선형 구조일 때는 깊이 우선 탐색(DFS), 너비 우선 탐색(.. 2022. 6. 15.
[백준] 1789번 문제출처: https://www.acmicpc.net/problem/1789 1789번: 수들의 합 첫째 줄에 자연수 S(1 ≤ S ≤ 4,294,967,295)가 주어진다. www.acmicpc.net 슬금슬금 실버 5단계로 올라와서 풀기 시작한 문제다.(아직 수학구현이긴 하지만...) 사실 이 당시의 나한테는 브론즈 2~ 실버 5단계는 나누는 것에 의미가 없었다. 브론즈가 더 어렵게 느껴질 때도 있는 초짜여서 그랬던가^_ㅠ ​ 아무튼 문제의 내용을 요약하자면, 서로 다른 N개의 자연수의 합이 S인데, S가 주어졌을 때 N의 최대 개수를 구하는 것이다. 최소 개수면 그냥 자기 자신을 합한 경우인 1밖에 안 나오기 때문에 최대 개수로 정한 듯하다. 가령, S = 55라면, 우리는 1+2+3+4+5+6+7.. 2022. 6. 15.
[백준] 13305번 문제출처: https://www.acmicpc.net/problem/13305 13305번: 주유소 표준 입력으로 다음 정보가 주어진다. 첫 번째 줄에는 도시의 개수를 나타내는 정수 N(2 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 인접한 두 도시를 연결하는 도로의 길이가 제일 왼쪽 도로부터 N-1 www.acmicpc.net 미루고 미루던 그리디 알고리즘 문제이다. 문제를 요약하면, 원하는 도시까지 도달하는데 필요한 최소의 주유비를 구하는 것이다. 가령 예시처럼 4개의 도시가 있고 마지막 도시에 도달하고 싶을 때, 최소한으로 1리터당 5원하는 맨 첫번째 도시에서 5x2=10원 충전을 필수로 하고 그 다음 가장 주유비가 저렴한 곳에서 나머지 리터당 주유를 채우면 된다. 다만, 제일 오른쪽 거리는.. 2022. 6. 15.