C++ - 백준 [BAEK JOON]
[백준] 3003번 : 킹, 퀸, 룩, 비숍, 나이트, 폰 - [C++]
[백준] 3003번 : 킹, 퀸, 룩, 비숍, 나이트, 폰 - [C++]
2022.09.07https://www.acmicpc.net/problem/3003 3003번: 킹, 퀸, 룩, 비숍, 나이트, 폰 첫째 줄에 동혁이가 찾은 흰색 킹, 퀸, 룩, 비숍, 나이트, 폰의 개수가 주어진다. 이 값은 0보다 크거나 같고 10보다 작거나 같은 정수이다. www.acmicpc.net 문제 기본 조건문만 안다면 그리 어렵지 않은 문제다. 알고리즘 [접근 방법] (필자가 Java하고 C++를 따로 포스팅하다보니 같은 문제에 대해 본문 내용은 거의 같다.. 그러니 만약 둘 다 보시는 분들이라면 양해를 바란다..) 체스.. 예전에 진짜 자주 두었었던 게임이다.. 킹 1, 퀸 1, 룩 2, 비숍 2, 나이트 2, 폰 8로 총 16개의 말을 활용하여 상대 말들을 하나씩 따내면서 체크메이트를 만들거나 스테일메이..
[백준] 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분을 더해야 한다...
[백준] 25083번 : 새싹 - [C++]
[백준] 25083번 : 새싹 - [C++]
2022.07.06https://www.acmicpc.net/problem/25083 25083번: 새싹 아래 예제와 같이 새싹을 출력하시오. www.acmicpc.net 문제 알고리즘 [접근 방법] 이 번 문제도 단순 출력문제다. 다만, 제어 문자(이스케이프 시퀀스)에 대해 이해를 하고 있어야 한다. 해당 부분에 대한 얘기는 아래 글에서 다루고 있으니 이 부분을 참고하여 풀이하시기를 바란다. https://st-lab.tistory.com/204
[백준] 18108번 : 1998년생인 내가 태국에서는 2541년생?! - [C++]
[백준] 18108번 : 1998년생인 내가 태국에서는 2541년생?! - [C++]
2022.07.01https://www.acmicpc.net/problem/18108 18108번: 1998년생인 내가 태국에서는 2541년생?! ICPC Bangkok Regional에 참가하기 위해 수완나품 국제공항에 막 도착한 팀 레드시프트 일행은 눈을 믿을 수 없었다. 공항의 대형 스크린에 올해가 2562년이라고 적혀 있던 것이었다. 불교 국가인 태국 www.acmicpc.net 문제 간단한 수리 추론 문제다! 알고리즘 [접근 방법] 어렵지 않게 풀었으리라 본다. 아마 정수 입출력에 대한 것과 수리 추론을 보는 것 같은데, 사실 알고리즘 문제를 푼다는 건 적어도 기본 문법과 사용은 어느정도 한다는 것이니.. 그래도 설명하자면, 불기 연도가 주어질 때 이를 서기 연도로 바꾸어 출력하라는 것이다. 그럼 불기를 어떻게 ..
[백준] 10926번 : ??! - [C++]
[백준] 10926번 : ??! - [C++]
2022.06.30https://www.acmicpc.net/problem/10926 10926번: ??! 준하는 사이트에 회원가입을 하다가 joonas라는 아이디가 이미 존재하는 것을 보고 놀랐다. 준하는 놀람을 ??!로 표현한다. 준하가 가입하려고 하는 사이트에 이미 존재하는 아이디가 주어졌을 때 www.acmicpc.net 문제 알고리즘 [접근 방법] 이 번 문제는 C++ 의 string 자료형을 쓰면 어렵지는 않은 문제다. 다만, C스타일로 char[] 에 담은 뒤, printf 형식에 ??!을 붙여 출력 할 경우에는 조금의 주의가 필요하다. 오늘은 이 부분에 대해 간략히 소개하고자 한다. 예로들어 char id[10] 에 abcd를 담았다고 가정보자. 그러면 위 우리가 일반적으로 생각하기에는 이런식으로 출력할 수..
[백준] 1065번 : 한수 - [C++]
[백준] 1065번 : 한수 - [C++]
2022.04.12https://www.acmicpc.net/problem/1065 1065번: 한수 어떤 양의 정수 X의 각 자리가 등차수열을 이룬다면, 그 수를 한수라고 한다. 등차수열은 연속된 두 개의 수의 차이가 일정한 수열을 말한다. N이 주어졌을 때, 1보다 크거나 같고, N보다 작거나 www.acmicpc.net 문제 알고리즘 [접근 방법] 이 번 문제에서는 주의해야 할 점이 두 가지가 있다. 1 보다 크고 입력받은 값보다 작거나 같은 한수의 개수를 출력한다. 한수는 각 자리수가 등차수열을 이루는 수를 의미한다. 이 두 가지만 조심하여 풀면 그리 어렵지 않게 풀 수 있을 것이다. 본론으로 들어가보자. 등차수열(arithmetic sequence). 즉 연속하는 두 항의 차이가 모두 일정한 수열을 의미한다. 예..
[백준] 4673번 : 셀프 넘버 - [C++]
[백준] 4673번 : 셀프 넘버 - [C++]
2022.04.08https://www.acmicpc.net/problem/4673 4673번: 셀프 넘버 셀프 넘버는 1949년 인도 수학자 D.R. Kaprekar가 이름 붙였다. 양의 정수 n에 대해서 d(n)을 n과 n의 각 자리수를 더하는 함수라고 정의하자. 예를 들어, d(75) = 75+7+5 = 87이다. 양의 정수 n이 주어졌을 때, www.acmicpc.net 문제 ※ 주의할 점 한 줄에 하나씩 출력해야한다. 그렇다고 a lot more numbers 문자를 출력하는 것은 절대 아니다. 양의 정수. 즉 0보다 크고 10000 보다 작거나 같은 수 중에 셀프 넘버(self number) 을 출력하면 된다. 알고리즘 [접근 방법] 먼저 설명하기에 앞서 함수를 굳이 쓰지 않아도 된다. 그러나 함수 카테고리인 ..
[백준] 15596번 : 정수 N개의 합 - [C++]
[백준] 15596번 : 정수 N개의 합 - [C++]
2022.01.08https://www.acmicpc.net/problem/15596 15596번: 정수 N개의 합 C++17, Java 8, Python 3, C11, PyPy3, C99, C++98, C++11, C++14, Go, C99 (Clang), C++98 (Clang), C++11 (Clang), C++14 (Clang), C11 (Clang), C++17 (Clang) www.acmicpc.net 문제 //shf 이 번 문제는 본문에 나와있듯 함수를 작성하기만 하면 된다. 알고리즘 [접근 방법] 이 번 문제는 어려울 것은 없다. 아마 대부분 알고리즘을 푸는 분들이라면, 어느정도 언어 작성에 있어 기초는 배우셨을 것이니,,, 그런김에 함수에 대해 짧게 설명하자면, 어떤 언어든 기본적으로 함수는 다음 3가지의..
[백준] 4344번 : 평균은 넘겠지 - [C++]
[백준] 4344번 : 평균은 넘겠지 - [C++]
2021.12.17https://www.acmicpc.net/problem/4344 4344번: 평균은 넘겠지 대학생 새내기들의 90%는 자신이 반에서 평균은 넘는다고 생각한다. 당신은 그들에게 슬픈 진실을 알려줘야 한다. www.acmicpc.net 문제 이 번 문제도 그리 어려운 문제는 아닐 것이다. 다만, 소수점 출력과 반올림 문제 때문에 틀린 분 들도 은근 있을 것이고, 이 번 문제는 입력받은 수에 따라 배열을 생성해야하기에 동적 할당 개념을 모를 경우 어려웠을 수도 있으리라 본다. 이 부분을 유의하면서 한 번 같이 풀어보도록 하자. 알고리즘 [접근 방법] 사실 이 문제자체가 어려운 것은 아니다. 다만, 짚고 넘어가야 할 것이 있다. 바로 배열의 동적 할당과 정적 할당이다. 그동안은 배열을 선언하고 쓸 때 다음과 ..