C++ - 백준 [BAEK JOON]
[백준] 2844번 : 알람 시계 - [C++]
[백준] 2844번 : 알람 시계 - [C++]
2021.03.15www.acmicpc.net/problem/2884 2884번: 알람 시계 상근이는 매일 아침 알람을 듣고 일어난다. 알람을 듣고 바로 일어나면 다행이겠지만, 항상 조금만 더 자려는 마음 때문에 매일 학교를 지각하고 있다. 상근이는 모든 방법을 동원해보았지만, www.acmicpc.net 문제 이 번 문제는 약간 고려해야 할 점이 몇 개 있다. 24시간 표현법으로 표현해야한다는 점과, 00시가 아닌 0으로 표현한다는 점이다. 이 점을 유의하여 풀이해보도록 하자. 알고리즘 [접근 방법] 어려운 문제는 아니다. 현재 받은 수에서 45분 전을 구하면 되는 문제라... 다만, 주의해야 할 점은 0시 보다 아래 시간은 음수가 아니라 23시라는 것은 당연하지만, 이 부분을 고려하지 못하고 그냥 풀었을 수도 있기에 ..
[백준] 1468번 : 사분면 고르기 - [C++]
[백준] 1468번 : 사분면 고르기 - [C++]
2021.03.11www.acmicpc.net/problem/14681 14681번: 사분면 고르기 점 (x, y)의 사분면 번호(1, 2, 3, 4 중 하나)를 출력한다. www.acmicpc.net 문제 알고리즘 [접근 방법] 이번 문제는 워낙 쉬운 문제라 다들 어렵지 않게 풀었을 것이다. 우리가 흔히 사용하는 좌표계를 생각하면 된다. 그리고 하나 포인트라고 하면, X좌표와 Y좌표는 양수 또는 음수로만 주어진다. 이 의미는 0은 입력으로 들어오지 않기 때문에 (X,0), (Y,0), (0,0) 에 대해 따로 예외 처리를 해주지 않아도 된다. 참고로 각 사분면은 다음과 같이 나뉜다. 1사분면 : (양수, 양수) 2사분면 : (음수, 양수) 3사분면 : (음수, 음수) 4사분면 : (양수, 음수) 이를 토대로 조건문을 작..
[백준] 2753번 : 윤년 - [C++]
[백준] 2753번 : 윤년 - [C++]
2021.03.09https://www.acmicpc.net/problem/2753 2753번: 윤년 연도가 주어졌을 때, 윤년이면 1, 아니면 0을 출력하는 프로그램을 작성하시오. 윤년은 연도가 4의 배수이면서, 100의 배수가 아닐 때 또는 400의 배수일 때 이다. 예를들어, 2012년은 4의 배수라서 윤년이지만, 1900년은 4의 배수이지만, 100의 배수이기 때문에 윤년이 아니다. 하지만, 2000년은 400의 배수이기 때문에 윤년이다. www.acmicpc.net 문제 알고리즘 [접근 방법] 조건을 보면 4의 배수는 윤년으로 1을 출력하지만 100의 배수일 경우 윤년이 아니라 0을 출력해야한다. 다만, 400의 배수일 경우는 윤년으로 본다. 기본 알고리즘은 먼저 4의 배수인지 여부를 본 뒤 4의 배수일 경우 4..
[백준] 9498번 : 시험 성적 - [C++]
[백준] 9498번 : 시험 성적 - [C++]
2021.03.02www.acmicpc.net/problem/9498 9498번: 시험 성적 시험 점수를 입력받아 90 ~ 100점은 A, 80 ~ 89점은 B, 70 ~ 79점은 C, 60 ~ 69점은 D, 나머지 점수는 F를 출력하는 프로그램을 작성하시오. www.acmicpc.net 문제 워낙 쉬운 문제라 크게 설명 할 게 없다.... 알고리즘 [접근 방법] 이전 문제에서 if-else 조건문에 대해 알아보았다. 기본적으로 if-else는 if() 문의 조건을 만족한다면 if문 블럭 안의 내용을 실행하고 만족하지 못한다면 else 문의 블럭을 실행하는 구조였다. 이 문제 또한 똑같은 원리를 적용하면 된다. 오늘은 코드를 깔끔하게 최적화하여 작성 하는 방법을 알려주고자 한다. int score;// 시험점수를 입력받았..
[백준] 1330번 : 두 수 비교하기 - [C++]
[백준] 1330번 : 두 수 비교하기 - [C++]
2021.02.28www.acmicpc.net/problem/1330 1330번: 두 수 비교하기 두 정수 A와 B가 주어졌을 때, A와 B를 비교하는 프로그램을 작성하시오. www.acmicpc.net 문제 워낙 크게 어렵지 않은 문제라 쉽게 풀 수 있었을 것이다. 알고리즘 [접근 방법] 이 번 문제는 두 수를 입력받은 뒤 서로 비교하여 연산자를 출력하면 되는 문제라 그리 어렵지 않을 것이다. 간단하게 의사코드로 풀이하면 다음과 같다. int A = input(); int B = input(); if A > B then : print(">"); else if A > B; if(A > B) { BIG = A; } else { BIG = ..
[백준] 2588번 : 곱셈 - [C++]
[백준] 2588번 : 곱셈 - [C++]
2021.02.26https://www.acmicpc.net/problem/2588 2588번: 곱셈 첫째 줄부터 넷째 줄까지 차례대로 (3), (4), (5), (6)에 들어갈 값을 출력한다. www.acmicpc.net 문제 매우 간단한 문제다! 3개의 풀이 방법을 제시한다. 이 문제는 하나로 입력된 문자(숫자)를 분리하여 연산을 할 수 있는지를 확인하는 문제다. 그래서 필자가 문제 접근 방법을 두 가지로 나누어서 제시하고자 한다. 알고리즘 첫 번째 입력으로 들어오는 세 자리수 정수에 두 번째 입력으로 들어오는 정수를 분리하여 각 각 곱한 값을 출력(3~5) 한 뒤 마지막에는 원래 식의 연산 값을 출력해주어야 한다. 그럼 두 번째 입력값을 어떻게 분리해주어야 하냐의 문제인데 방법은 크게 2가지가 있다. char[] 로..
[백준] 10430번 : 나머지 - [C++]
[백준] 10430번 : 나머지 - [C++]
2021.02.25https://www.acmicpc.net/problem/10430 10430번: 나머지 첫째 줄에 A, B, C가 순서대로 주어진다. (2 ≤ A, B, C ≤ 10000) www.acmicpc.net 문제 매우 간단한 문제다! 풀이하기 전에 ... 모듈러 연산 ( Modular Arithmetic ) 과 증명 직전의 문제에서 필자가 모듈러 연산에 대해 이해를 하면 좋다고 했다. 바로 이러한 문제 때문인데, 위 문제에서 그냥 출력만 하고 땡이지! 라고 하기에는 너무 아까운 문제다. 그러므로 한 번 모듈러 연산에 대한 증명과 성질을 보고가보자. 우리는 프로그래밍에서 대부분 나머지 연산 할 때 %로 표기하며 아래와 같이 표현한다. 17 % 3 = 2 이 것을 일반 표기법으로 바꾸면 다음과 같다. 17 mo..
[백준] 10869번 : 사칙연산 - [C++]
[백준] 10869번 : 사칙연산 - [C++]
2021.02.24www.acmicpc.net/problem/10869 10869번: 사칙연산 두 자연수 A와 B가 주어진다. 이때, A+B, A-B, A*B, A/B(몫), A%B(나머지)를 출력하는 프로그램을 작성하시오. www.acmicpc.net 문제 그동안 풀어왔던 덧셈, 뺄셈, 곱셈, 나눗셈과 마지막으로 '나머지'를 구하는 방법을 모두 합친 문제다. 알고리즘 [접근 방법] 그동안 아래의 문제들을 풀어보았다면 그닥 어렵지 않았을 것이다. A+B (BOJ 1000) A-B (BOJ 1001) A×B (BOJ 10998) A/B (BOJ 1008) 이 때 주의할 점은 나눗셈의 경우 소수점 아래까지 표현하는 것이 아니라 '몫'을 출력해야 하는 문제다. 기본적으로 정수 데이터 (byte, short, int, long)..
[백준] 1008번 : A/B - [C++]
[백준] 1008번 : A/B - [C++]
2021.02.23www.acmicpc.net/problem/1008 1008번: A/B 두 정수 A와 B를 입력받은 다음, A/B를 출력하는 프로그램을 작성하시오. www.acmicpc.net 문제 알고리즘 [접근 방법] 이 문제는 '부동 소수점'에 대한 이해를 필요로 하는 문제다. 부동 소수점(浮動小數點)은 직역하자면 '떠서 움직이는 소수점' 을 의미한다. 왜 떠서 움직인다고 할까? 이에 대해 상세하게 다루자면 길어지니 간단하게만 알아보자면 이렇다. 컴퓨터는 기본적으로 0과 1 즉, 비트로 수를 표현한다. 예로들어 1001 은 9 를 의미하듯이 말이다. 하지만 한정 된 비트 안에 수를 표현하다보니 제약점이 많은데, 바로 소수점 표현 방식이다. (음수의 경우 보수 방식으로 표현이 가능하다. 자세한 내용은 다음 링크를 참..
[백준] 10998번 : A×B - [C++]
[백준] 10998번 : A×B - [C++]
2021.02.13www.acmicpc.net/problem/10998 10998번: A×B 두 정수 A와 B를 입력받은 다음, A×B를 출력하는 프로그램을 작성하시오. www.acmicpc.net 문제 간단한 곱셈 문제다. 알고리즘 [접근 방법] 이 문제 또한 그리 어렵지 않은 문제다. 만약 다른 문제 전에 이 글을 먼저 보셨다면 아래 글을 참고하셔도 좋을 것 같다. st-lab.tistory.com/206 [백준] 1000번 : A+B - [C++] www.acmicpc.net/problem/1000 1000번: A+B 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. www.acmicpc.net 문제 이 번 문제부터 입력이 주어지고 문제에서 요구하는 것에 맞춰 출력을.. st-lab.tis..