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개의 말을 활용하여 상대 말들을 하나씩 따내면서 체크메이트를 만들거나 스테일메이..
[백준] 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를 담았다고 가정보자. 그러면 위 우리가 일반적으로 생각하기에는 이런식으로 출력할 수..
[백준] 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..
[백준] 1001번 : A-B - [C++]
[백준] 1001번 : A-B - [C++]
2021.02.10www.acmicpc.net/problem/1001 1001번: A-B 두 정수 A와 B를 입력받은 다음, A-B를 출력하는 프로그램을 작성하시오. www.acmicpc.net 문제 직전 문제인 A+B (1000번 문제)와 유사한 문제다. 알고리즘 [접근 방법] 대부분은 1000번 A+B 문제를 풀고 왔기 때문에 어렵지 않게 풀었을 것이다. 혹여 처음 보셨다면 다음 포스팅을 먼저 보고 오시는 것을 추천드린다. st-lab.tistory.com/206 [백준] 1000번 : A+B - [C++] www.acmicpc.net/problem/1000 1000번: A+B 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. www.acmicpc.net 문제 이 번 문제부터 입력이 주어지고..