본문 바로가기

컴퓨터/백준 알고리즘

(177)
백준 알고리즘 2884번: 알람 시계 [C++] 문제 출처: www.acmicpc.net/problem/2884 2884번: 알람 시계 상근이는 매일 아침 알람을 듣고 일어난다. 알람을 듣고 바로 일어나면 다행이겠지만, 항상 조금만 더 자려는 마음 때문에 매일 학교를 지각하고 있다. 상근이는 모든 방법을 동원해보았지만, www.acmicpc.net 1. 코드 (실행) 2. 풀이 int h, m; cin >> h >> m; 먼저, h(시)와 m(분)을 입력하여 알림을 설정하고 싶은 시간을 입력받는다. if ((m - 45) < 0) { m = 60 - (45 - m); if ((h - 1) < 0) h = 23; else h--; } 그리고 m - 45 일때 0미만이 될 경우 m = 60 - (45 - m)을 하면 우리가 원하는 m(분)이 나온다. 그리..
백준 알고리즘 14681번: 사분면 고르기 [C++] 문제 출처: www.acmicpc.net/problem/14681 14681번: 사분면 고르기 점 (x, y)의 사분면 번호(1, 2, 3, 4 중 하나)를 출력한다. www.acmicpc.net 1. 코드 (실행) 2. 풀이 우선 문제에 대해서 먼저 파악해보자. 문제에서 x좌표와 y좌표를 입력 후에 그것이 어떠한 사분면에 속하였는지를 알아보는 것이다. 그렇다면 1 사분면은 x > 0, y > 0일 때이며 2 사분면은 x 0일 때이며 3 사분면은 x 0, y > x >> y; 우선 x와 y좌표를 선언 후 입력함으로써 초기화를 한다. if (x > 0) { if (y > 0) cout 0)에 속하였으므로 1을 출력한다. 만약 y 좌표의 값이 ..
백준 알고리즘 9498번: 시험 성적 [C++] 문제 출처: www.acmicpc.net/problem/9498 9498번: 시험 성적 시험 점수를 입력받아 90 ~ 100점은 A, 80 ~ 89점은 B, 70 ~ 79점은 C, 60 ~ 69점은 D, 나머지 점수는 F를 출력하는 프로그램을 작성하시오. www.acmicpc.net 1. 코드 2. 풀이 처음 이 문제를 보고 if 문을 이용하여 문제를 해결할지, switch문으로 이 문제를 해결할지 생각을 해보았는데 조금 더 정리된 느낀이 있는 switch문을 이용하는게 좋을 것 같아서 해결하였다. int score; cin >> score; 우선 점수를 입력한다. switch (score / 10) 그리고 switch에 score의 점수를 10으로 나눈 몫으로 한다. 왜냐하면 100/10 = 10, 9..
백준 알고리즘 1330번: 두 수 비교하기 [C++] 문제 출처: www.acmicpc.net/problem/1330 1330번: 두 수 비교하기 두 정수 A와 B가 주어졌을 때, A와 B를 비교하는 프로그램을 작성하시오. www.acmicpc.net 1. 코드 2. 풀이 int A, B; cin >> A >> B; A와 B 변수를 선언 후 값을 입력하여 초기화한다. if (A > B) cout 를 출력하게 한다. else if (A < B) cout
백준 알고리즘 2588번: 곱셈 [C++] 문제 출처: www.acmicpc.net/problem/2588 2588번: 곱셈 첫째 줄부터 넷째 줄까지 차례대로 (3), (4), (5), (6)에 들어갈 값을 출력한다. www.acmicpc.net 1. 코드 2. 풀이 아래 풀이 과정은 예제 입력으로 예시를 들겠다. n1 = A * (B % 10); 위 코드에서 B % 10는 1의 자리수만 남기 때문에 예제 입력을 예시로 든다면 385 % 10 = 5가 된다. 그리고 A(472)를 곱하면 2360이 나온다. n2 = A * ((B % 100) - (B % 10)) / 10; ((B % 100) - (B % 10)) / 10은 10의 자리수를 도출하기 위해서 사용되었는데 ((385 % 100) - (385 % 10)) / 10 = (85 - 5) /..
백준 알고리즘 10430번: 나머지 [C++] 문제 출처: www.acmicpc.net/problem/10430 10430번: 나머지 첫째 줄에 A, B, C가 순서대로 주어진다. (2 ≤ A, B, C ≤ 10000) www.acmicpc.net 1. 코드 2. 풀이 cout으로 출력을 하는데 출력 내용은 문제에 있는 그대로 쓰는데 1가지만 바꾸면 된다. ×를 *로 바꾸기만 하면 된다. 그 이유는 곱하기를 할 때 사용하는 것은 x가 아닌 *이기 때문이다.
백준 알고리즘 10869번: 사칙연산 [C++] 문제 출처: www.acmicpc.net/problem/10869 10869번: 사칙연산 두 자연수 A와 B가 주어진다. 이때, A+B, A-B, A*B, A/B(몫), A%B(나머지)를 출력하는 프로그램을 작성하시오. www.acmicpc.net 1. 코드 2. 풀이 cout를 사용할 때 endl 혹은 \n을 사용하면 줄 바꿈을 할 수 있다. 그래서 그것을 이용해서 한 줄로 출력했다. 추가적으로 A / B를 할 때는 A를 B로 나누었을 때 몫이 나오게 되고 A % B를 하게 되면 A를 B로 나누었을 때 나머지가 나오게 된다.
백준 알고리즘 1008번: A/B [C++] 문제 출처: www.acmicpc.net/problem/1008 1008번: A/B 두 정수 A와 B를 입력받은 다음, A/B를 출력하는 프로그램을 작성하시오. www.acmicpc.net 1. 코드 (예제 1 실행) (예제 2 실행) 2. 풀이 cout.precision(10); 나머지 부분에 대해서는 잘 알고 위에 있는 코드 부분에 대해 설명하겠다. 위 코드는 출력 시 큰 자리부터 10자리를 출력하겠다는 말이다. 만약 가로 안에 숫자가 3이라고 하면 출력시 큰 자리가 나온다 예를 들어 설명하겠다. #include using namespace std; int main() { double A = 1.2345678912; cout.precision(10); cout