본문 바로가기

전체보기

[백준][1008][Op] A/B A/B 두 정수 A와 B를 입력받은 다음, A/B를 출력하는 프로그램을 작성하시오. 첫째 줄에 A와 B가 주어진다. (0 > a >> b; cout
[백준][Op] AxB AxB 두 정수 A와 B를 입력받은 다음, A×B를 출력하는 프로그램을 작성하시오. 첫째 줄에 A와 B가 주어진다. (0 > a >> b; cout
[백준][I/O] 그대로 출력하기2 그대로 출력하기2 입력이 주어진다. 입력은 최대 100줄로 이루어져 있고, 알파벳 소문자, 대문자, 공백, 숫자로만 이루어져 있다. 각 줄은 100글자를 넘지 않으며, 빈 줄이 주어질 수도 있고, 각 줄의 앞 뒤에 공백이 있을 수도 있다. 1234567891011#include #include using namespace std; int main(void){ string a; for(int i=0; i
[백준][I/O] 그대로 출력하기 그대로 출력하기 입력이 주어진다. 입력은 최대 100줄로 이루어져 있고, 알파벳 소문자, 대문자, 공백, 숫자로만 이루어져 있다. 각 줄은 100글자를 넘지 않으며, 빈 줄은 주어지지 않는다. 또, 각 줄은 공백으로 시작하지 않고, 공백으로 끝나지 않는다. 1234567891011#include #include using namespace std; int main(void){ string a; for(int i=0; i
[Level 3] 6. 줄 서는 방법 6. 줄 서는 방법 Algorithm - Level 3 - 풀이 1. 첫 번째 수는 n! / n 번씩 반복하여 오름차순으로 증가한다. -> 이를 이용하여 첫 번째 수를 answer에 삽입한다. 2. 두 번째 수는 첫 번째 수를 제외한 (n-1)! / (n-1) 씩 반복하여 오름차순으로 증가한다.-> 이를 이용하여 두 번째 수를 answer에 삽입한다 3. 이러한 과정을 반복하여 2개의 원소만 남았을 경우, 입력 k가 홀수 이면 순서대로, 입력 k가 짝수이면 역순으로 삽입한다. 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647#include #include using namespace std; vecto..
[Level 3] 5. 야근 지수 알고리즘 5. 야근 지수 알고리즘 Algorithm - Level 3 - 풀이 1. 원소 중 최대값에 1을 빼는 행동을 n번 만큼 반복하면 된다. 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950#include #include #include #include using namespace std; long long calculate(vector a){ long long answer = 0; for(int i=0; i0){ works[idx++]--; n--; } } } } return calculate(works);}Colored by Color Scriptercs 위 풀이 방법은 에서 말한 방법을 푼..
[Level 3] 4. 멀리 뛰기 4. 멀리 뛰기 Algorithm - Level 3 - 풀이 1. 점화식으로 보고 풀이하였다. 2. 1, 2 칸은 한 번에 갈 수 있다.-> 1 번째 인덱스는 경우의 수가 1, 2번째 인덱스는 경우의 수가 2이다. 5. i번째 인덱스는 i-1, i-2 의 합과 같다.-> 피보나치와 같다.123456789101112131415161718#include #include using namespace std; long long solution(int n) { long long answer = 0; vector dp(n, 0); dp[0] = 1; dp[1] = 2; for(int i=2; i
[Level 3] 3. 거스름돈 경우의 수 3. 거스름돈 경우의 수 Algorithm - Level 3 - 풀이 1. 이 문제도 Dynamic Programming으로 접근가능하다. 2. n+1 크기의 배열을 선언한다. 3. 1부터 n까지 원소를 0으로 초기화한다.-> 만약, 화폐단위 중 1이 존재하면 모든 원소를 1로 초기화한다. 5. 화폐단위와 같은 거스름돈은 (n=5, money=5) 경우의 수를 1 증가한다. 6. 그 외는 n까지의 인덱스를 차례로 접근해 작은 화폐단위를 뺀 인덱스의 원소값을 더해준다.-> ex) money=2, index=5일 경우, 5-2=3 index에 위치한 원소값을 더해준다. 이는 그 전에 계산한 경우의 수를 더해주는 것으로 거스름돈이 5인 경우의 수는 money=2를 하나 선택하고 남은 돈 3의 경우의 수와 같다..