C++ - 백준 [BAEK JOON]/조건문
[백준] 2480번 : 주사위 세개 - [C++]
[백준] 2480번 : 주사위 세개 - [C++]
2022.08.05https://www.acmicpc.net/problem/2480 2480번: 주사위 세개 1에서부터 6까지의 눈을 가진 3개의 주사위를 던져서 다음과 같은 규칙에 따라 상금을 받는 게임이 있다. 같은 눈이 3개가 나오면 10,000원+(같은 눈)×1,000원의 상금을 받게 된다. 같은 눈이 2개 www.acmicpc.net 문제 3개의 변수 비교를 하는 방법에 관한 문제다. 자바에서는 다중비교도 가능하기 때문에 쉽게 풀이할 수 있을 것이다. 알고리즘 [접근 방법] 위 문제에서 가장 중요한 것은 결국 세 개의 변수 비교다. 그 변수들에 따라 같은 것이 존재할 경우 같은 변수가 무엇인지를 찾고, 같은 변수가 두 개인지, 세 개인지를 판단해야한다. 또는 모두 다를 경우 세 개의 변수 중 가장 큰 것을 찾는 ..
[백준] 2525번 : 오븐 시계 - [C++]
[백준] 2525번 : 오븐 시계 - [C++]
2022.07.24https://www.acmicpc.net/problem/2525 2525번: 오븐 시계 첫째 줄에 종료되는 시각의 시와 분을 공백을 사이에 두고 출력한다. (단, 시는 0부터 23까지의 정수, 분은 0부터 59까지의 정수이다. 디지털 시계는 23시 59분에서 1분이 지나면 0시 0분이 된다.) www.acmicpc.net 문제 직전 문제인 알람 시계(2884번)와 거의 유사한 문제라 해당 문제를 풀었다면 어렵지 않게 풀 수 있었으리라 본다. 만약 아직 풀지 않으셨다면 해당 문제를 먼저 보고오시는 것을 추천드린다. 알고리즘 [접근 방법] 이 번 문제는 알람 시계 문제의 반대라고 보시면 된다. 알람 시계 문제에서는 주어진 시간에서 45분을 뺐어야 했다면 이 문제에선 사용자 입력에 따라 C분을 더해야 한다...
[백준] 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 = ..