PS 119

[BOJ 백준] 31474 양갈래 짝 맞추기 (C++ 풀이)

링크 https://www.acmicpc.net/problem/31474 31474번: 양갈래 짝 맞추기 첫째 줄에 양갈래 손님의 수 $N$이 주어진다. ($2 \leq N \leq 28$, $N$은 짝수) www.acmicpc.net 풀이 백준 31474번 문제 양갈래 짝 맞추기는 조합론으로 풀 수 있는 문제입니다. N은 총 인원의 수로 짝수로 주어지고, 테이블에 앉히는 경우의 수를 구하는 문제인데요. 두 가지 조건이 있습니다. 1. 한 테이블에서는 좌석 구분이 없다. (마치 아무 것도 없는 완벽한 원형 테이블에 마주 앉아있는 두 사람처럼 한 테이블에 A B가 앉든 B A가 앉든 같은 경우라는 뜻입니다.) 2. 각각의 테이블 또한 구분하지 않는다. 이는 테이블에 앉히는 순서를 고려하지 않는다는 것입니다..

PS/BOJ 2024.03.04

[백준 BOJ][DP] 1309 동물원 (C++ 풀이)

링크 https://www.acmicpc.net/problem/1309 1309번: 동물원 첫째 줄에 우리의 크기 N(1≤N≤100,000)이 주어진다. www.acmicpc.net 풀이 백준 1309 동물원 문제는 타일 문제와 비슷한 기본적인 다이나믹 프로그래밍 문제입니다. 따라서 이전 경우에다가 우리 한 칸을 아래로 확장했을 때 경우의 수가 얼마나 늘어나는지에 대한 관계식을 찾아 해결하면 됩니다. 점화식 구상과 배열 선언 초기 조건을 나중에 살펴보고, 점화식에 대한 구상부터 하면 다음과 같은 4가지 경우를 생각해볼 수 있는데요. (중요!) 1. 직전에도 사자가 배치되지 않았고, 새로 확장한 부분에도 사자를 배치하지 않을 경우 - 배치하지 않는다는 한 가지 경우 2. 직전에는 사자가 배치되지 않았고, ..

PS/BOJ 2024.03.02

[백준 BOJ][stack] 1874 스택 수열

링크 https://www.acmicpc.net/problem/1874 1874번: 스택 수열 1부터 n까지에 수에 대해 차례로 [push, push, push, push, pop, pop, push, push, pop, push, push, pop, pop, pop, pop, pop] 연산을 수행하면 수열 [4, 3, 6, 8, 7, 5, 2, 1]을 얻을 수 있다. www.acmicpc.net 풀이 입력으로 주어진 n개의 숫자로 이루어진 수열을 스택의 push, pop 입출력으로 만들어낼 수 있는지와 그 과정을 알려주는 코드를 짜야합니다. 다음과 같은 과정을 반복하면 되는데요. 1. 1~n까지 반복문을 수행합니다. 2. 가장 먼저 push를 수행합니다. 3. 스택이 비어있지 않으면 수행하는 while..

PS/BOJ 2023.03.29

[백준 BOJ][queue] 1966 프린터 큐

링크 https://www.acmicpc.net/problem/1966 1966번: 프린터 큐 여러분도 알다시피 여러분의 프린터 기기는 여러분이 인쇄하고자 하는 문서를 인쇄 명령을 받은 ‘순서대로’, 즉 먼저 요청된 것을 먼저 인쇄한다. 여러 개의 문서가 쌓인다면 Queue 자료구조에 www.acmicpc.net 풀이 입력은 위와 같이 첫 줄에는 문서의 개수와 위치를, 두 번째 줄에는 큐에 들어갈 문서의 중요도가 차례대로 주어집니다. 중요한 규칙은 중요도가 높은 문서를 먼저 인쇄한다는 점입니다. 지금 큐에 가장 앞에 있는 문서가 가장 높은 중요도가 아니라면 뒤로 보내고 아니면 출력합니다. 두 가지 방법을 생각해볼 수 있습니다. 1. 큐로 구현하기 2. 배열로 순회의 시작점을 달리하여 큐처럼 동작하게 하기..

PS/BOJ 2023.03.29

[백준 BOJ] 25238 가희와 방어율 무시

링크 https://www.acmicpc.net/problem/25238 25238번: 가희와 방어율 무시 메이플스토리 몬스터는 방어율 수치가 있습니다. 이 방어율 수치의 일정 %를 무시하는 것을 방무라고 합니다. 유저는 아이템을 사거나, 특정한 스킬 레벨을 올려서 방무 수치를 올릴 수 있습니 www.acmicpc.net 풀이 입력으로 몬스터의 방어율과 방어율 무시 수치를 받습니다. 유저가 체감하는 몬스터 방어율 수치를 구해서 100보다 크거나 같으면 0을, 작다면 1을 출력하면 됩니다. 유저의 체감 몬스터 방어율 수치는 a * (100 - b) / 100 입니다. 위의 예제로 예를 들면 200에서 200의 20퍼센트인 40을 뺀다는 것은 그냥 200의 80퍼센트인 160을 의미합니다. 또 계산 중에 소..

PS/BOJ 2022.10.05

[백준 BOJ] 9086 문자열

링크 https://www.acmicpc.net/problem/9086 9086번: 문자열 입력의 첫 줄에는 테스트 케이스의 개수 T(1 ≤ T ≤ 10)가 주어진다. 각 테스트 케이스는 한 줄에 하나의 문자열이 주어진다. 문자열은 알파벳 A~Z 대문자로 이루어지며 알파벳 사이에 공백은 없으 www.acmicpc.net 풀이 테스트 케이스의 개수와 문자열을 입력 받은 뒤에 문자열 첫 글자와 마지막 글자를 연속해 출력하는 문제입니다. C++ string에서는 substr함수로 이를 해결할 수 있습니다. str.substr(0,1) // 0번째 index부터 1글자만 출력 str.substr(0) // 0번째 index부터 끝까지 출력 str.substr(str.length() - 1) // 마지막 글자부터..

PS/BOJ 2022.10.04

[백준 BOJ] 24262 알고리즘 수업 - 알고리즘의 수행 시간 1

링크 https://www.acmicpc.net/problem/24262 24262번: 알고리즘 수업 - 알고리즘의 수행 시간 1 오늘도 서준이는 알고리즘의 수행시간 수업 조교를 하고 있다. 아빠가 수업한 내용을 학생들이 잘 이해했는지 문제를 통해서 확인해보자. 입력의 크기 n이 주어지면 MenOfPassion 알고리즘 수행 www.acmicpc.net 풀이 입력이 주어지고, return A[i];가 몇 번 수행되는지 그리고 수행 시간이 얼마나 소요되는지 출력하는 문제입니다. MenOfPassion(A[], n) { i = ⌊n / 2⌋; return A[i]; # 코드1 } 위 MenOfPassion의 알고리즘을 보면 배열 A와 n을 받아서 A의 원소를 반환합니다. 따라서 n이 얼마나 커지든 작아지든 ..

PS/BOJ 2022.10.04

[백준 BOJ] 5597 과제 안 내신 분..?

링크 https://www.acmicpc.net/problem/5597 5597번: 과제 안 내신 분..? X대학 M교수님은 프로그래밍 수업을 맡고 있다. 교실엔 학생이 30명이 있는데, 학생 명부엔 각 학생별로 1번부터 30번까지 출석번호가 붙어 있다. 교수님이 내준 특별과제를 28명이 제출했는데, www.acmicpc.net 풀이 교실에 1번부터 30번까지 30명의 학생이 있습니다. 그 중에서 특별과제를 제출한 학생은 28명입니다. 특별과제를 제출한 학생의 출석번호가 입력으로 주어지고 제출 하지 않은 학생 2명의 출석번호를 출력하는 프로그램입니다. 출력은 작은 출석번호부터 해야합니다. 우선 출석번호 하나하나에 대응되는 배열을 만들어줍니다. 반에 30번까지 있으니까 31칸을 가진 int 배열을 만들어줍..

PS/BOJ 2022.09.12

[백준 BOJ] 3733 Shares

링크 https://www.acmicpc.net/problem/3733 3733번: Shares A group of N persons and the ACM Chief Judge share equally a number of S shares (not necessary all of them). Let x be the number of shares aquired by each person (x must be an integer). The problem is to compute the maximum value of x. Write a program that www.acmicpc.net 풀이 N과 S를 입력 받습니다. S는 총 나눌 수 있는 주식의 양이고, 나눠야 하는 사람은 N명의 사람으로 이루어진 그룹 + A..

PS/BOJ 2022.09.12

[백준 BOJ] 2420 사파리월드

링크 www.acmicpc.net/problem/2420 2420번: 사파리월드 첫째 줄에 두 도메인의 유명도 N과 M이 주어진다. (-2,000,000,000 ≤ N, M ≤ 2,000,000,000) www.acmicpc.net 풀이 두 유명도 N, M이 주어지고, 그 차이를 구하는 문제다. 삼항연산자를 사용해서 출력하고 차이가 int 범위를 넘어가기 때문에 long을 사용해야한다. 코드 //2420_사파리월드 #include using namespace std; long n, m; int main() { scanf("%lld %lld", &n, &m); printf("%lld\n", (n - m >= 0) ? n - m : m - n); return 0; }

PS/BOJ 2021.03.08
반응형