C++ - 백준 [BAEK JOON]/반복문
[백준] 1110번 : 더하기 사이클 - [C++]
[백준] 1110번 : 더하기 사이클 - [C++]
2021.07.06https://www.acmicpc.net/problem/1110 1110번: 더하기 사이클 0보다 크거나 같고, 99보다 작거나 같은 정수가 주어질 때 다음과 같은 연산을 할 수 있다. 먼저 주어진 수가 10보다 작다면 앞에 0을 붙여 두 자리 수로 만들고, 각 자리의 숫자를 더한다. 그 다음, www.acmicpc.net 문제 그리 어려운 문제는 아닐 것이다. 조금만 문제를 자세히 살펴보면 쉽게 풀 수 있다. 알고리즘 [접근 방법] 문제 원리는 간단하다. 1. 1의 자릿수는 10의 자리수가 된다. 2. 각 자릿수의 값을 더한 결과의 1의 자릿수는 1의 자리수가 된다. 3. 위 과정을 통해 얻은 결과가 초기에 주어진 수랑 같을 때 까지 반복한다. 이 세 개만 찾아내면 된다. 쉽게 말해 아래 이미지와 같..
[백준] 10951번 : A + B - 4 - [C++]
[백준] 10951번 : A + B - 4 - [C++]
2021.06.29https://www.acmicpc.net/problem/10951 10951번: A+B - 4 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. www.acmicpc.net 문제 이 전 문제인 A+B - 5와 문제가 같아보이나 이 번 문제는 유의해야 할 점이 있다. 알고리즘 [접근 방법] 이 번 문제의 키 포인트는 문제를 자세히 보면 몇 개를 입력받는지 알 수 없다는 것이다. 이렇게 주어진 입력 파일만 갖고 입력을 받을 때 더이상 읽을 수 있는 데이터가 없는 경우 즉, 파일의 끝일 때 이를 EOF(End Of File) 이라고 한다. 위 문제를 본다면 입력에서 더이상의 읽을 수 있는 데이터가 존재하지 않을 때 반복문을 종료하라는 것이다. (참고로 우리는 일상적으로 문장의 끝을..
[백준] 10952번 : A+B - 5 - [C++]
[백준] 10952번 : A+B - 5 - [C++]
2021.06.13https://www.acmicpc.net/problem/10952 10952번: A+B - 5 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. www.acmicpc.net 문제 새로운 카테고리인 while 문의 첫 문제다. 알고리즘 [접근 방법] 만약 while문을 다뤄보았다면 모두가 쉽게 풀 수 있었을 것이다. 기본적으로 for문과 유사하게 반복문이라는 메커니즘을 갖고있지만 조금은 양식이 다르다. 그동안 배웠던 for문은 기본 형식이 다음과 같았다. 반면에 while문은 형태가 조금 더 간단하다. 두 개의 반복문은 본질적으로 그렇게 큰 차이는 없지만 for문은 초기식에 따른 변수에 따라 조건식을 검사하기 때문에 좀 더 유연하게 활용할 수 있고, 반면에 while문은 단순한..
[백준] 2439번 : 별 찍기 - 2 - [C++]
[백준] 2439번 : 별 찍기 - 2 - [C++]
2021.05.11www.acmicpc.net/problem/2439 2439번: 별 찍기 - 2 첫째 줄에는 별 1개, 둘째 줄에는 별 2개, N번째 줄에는 별 N개를 찍는 문제 하지만, 오른쪽을 기준으로 정렬한 별(예제 참고)을 출력하시오. www.acmicpc.net 문제 직전의 별 찍기 - 1 문제랑 거의 닮은 문제다. 조금만 고민해보면 그리 어렵지 않은 문제이니 한 번 살펴보도록 하자. 알고리즘 [접근 방법] 아마 대부분은 이 문제를 쉽게 푸셨을 것이다. 그래도 쉽다고 그냥 포스팅을 skip할 순 없기에.. 필자가 항상 강조하는 건 반복문을 이용한 별 찍기를 할 때, 수식으로 한 번 정리하고 가면 좋다는 것이다. 이 번 문제의 경우 직전 문제인 별 찍기 - 1 문제와 다른 점이 바로 공백을 먼저 출력한 뒤 별을 ..
[백준] 2438번 : 별 찍기 - 1 - [C++]
[백준] 2438번 : 별 찍기 - 1 - [C++]
2021.05.08www.acmicpc.net/problem/2438 2438번: 별 찍기 - 1 첫째 줄에는 별 1개, 둘째 줄에는 별 2개, N번째 줄에는 별 N개를 찍는 문제 www.acmicpc.net 문제 알고리즘 [접근 방법] 반복문의 꽃이라 할 수 있는 문제인 별 찍기 문제다. 아마 많은 분들이 프로그래밍 언어에서 반복문을 접할 때 한 번쯤은 접하게 될 문제들일 것이다. 이 번 문제뿐만 아니라 다양한 형식으로 별을 찍는 문제들이 있으니, 만약 반복문 풀이에 자신이 있다면, 백준 문제에 올라와있는 다양한 별 찍기 문제들을 풀어보는 것도 좋을 것 같다. 일단, 그동안 반복문을 풀면서 반복문이 어떻게 구성되는지는 다들 아실거라 본다. 그동안 배워왔던 반복문의 구조를 어떻게 문제에서 주어진 도형을 어떻게 찍을지가 관..
[백준] 11022번 : A+B - 8 - [C++]
[백준] 11022번 : A+B - 8 - [C++]
2021.05.02www.acmicpc.net/problem/11022 11022번: A+B - 8 각 테스트 케이스마다 "Case #x: A + B = C" 형식으로 출력한다. x는 테스트 케이스 번호이고 1부터 시작하며, C는 A+B이다. www.acmicpc.net 문제 바로 직전 문제인 A+B - 7 과 거의 같은 문제다. 알고리즘 [접근 방법] 이 번 문제는 크게 설명할 것이 없다... 혹시 이 문제를 처음 접한다면 다음 글을 먼저 참고하시길 바란다. st-lab.tistory.com/242 [백준] 11021번 : A+B - 7 - [C++] www.acmicpc.net/problem/11021 11021번: A+B - 7 각 테스트 케이스마다 "Case #x: "를 출력한 다음, A+B를 출력한다. 테스트 케..
[백준] 11021번 : A+B - 7 - [C++]
[백준] 11021번 : A+B - 7 - [C++]
2021.04.26www.acmicpc.net/problem/11021 11021번: A+B - 7 각 테스트 케이스마다 "Case #x: "를 출력한 다음, A+B를 출력한다. 테스트 케이스 번호는 1부터 시작한다. www.acmicpc.net 문제 이 번 문제는 별로 어려울 게 없다. 알고리즘 [접근 방법] 뭐.. 아마 대부분은 쉽게 풀었을 것이다. 만약 A+B 문제를 처음 접한다면 다음 글을 읽고 오시면 도움이 될 것이다. st-lab.tistory.com/229 [백준] 10950번 : A+B - 3 - [C++] www.acmicpc.net/problem/10950 10950번: A+B - 3 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. www.acmicpc.net 문제 알고리즘 ..
[백준] 15552번 : 빠른 A+B - [C++]
[백준] 15552번 : 빠른 A+B - [C++]
2021.03.28www.acmicpc.net/problem/15552 15552번: 빠른 A+B 첫 줄에 테스트케이스의 개수 T가 주어진다. T는 최대 1,000,000이다. 다음 T줄에는 각각 두 정수 A와 B가 주어진다. A와 B는 1 이상, 1,000 이하이다. www.acmicpc.net 문제 기존의 A+B에서 좀 더 성능에 중심을 둔 문제다. 알고리즘 [접근 방법] 이 부분은 반복문 보다는 입출력에 관한 지식을 필요로 하는 문제다. C언어 혹은 C++ 의 경우 scanf(), printf()를 사용하면 이 입출력 자체가 매우 빠른 편이라 쉽게 통과하지만, 다른 언어의 경우는 조금 사정이 다르다. C++에서도 사실 Standard 입출력인 cin, cout을 사용하고자 하면 시간초과가 날 것이다. 그러면 어떻게 ..
[백준] 8393번 : 합 - [C++]
[백준] 8393번 : 합 - [C++]
2021.03.26www.acmicpc.net/problem/8393 8393번: 합 n이 주어졌을 때, 1부터 n까지 합을 구하는 프로그램을 작성하시오. www.acmicpc.net 문제 이 번 문제 또한 그리 어렵지 않은 문제다. 알고리즘 [접근 방법] 대부분 카테고리별로 순차적으로 풀어오셨다면 이 번 문제 또한 그리 어렵지 않게 풀었을 것이다. n이 주어졌을 때 1부터 n까지의 합을 구하면 되는 문제라 반복문으로 1부터 n까지 반복하면서 누적 합을 구하면 된다. 만약 반복문에 대해 잘 모르신다면 다음 글을 보고 오면 도움이 될 것이다. st-lab.tistory.com/228 [백준] 2739번 : 구구단 - [C++] www.acmicpc.net/problem/2739 2739번: 구구단 N을 입력받은 뒤, 구구단..
[백준] 10950번 : A+B - 3 - [C++]
[백준] 10950번 : A+B - 3 - [C++]
2021.03.22www.acmicpc.net/problem/10950 10950번: A+B - 3 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. www.acmicpc.net 문제 알고리즘 [접근 방법] 이전 문제를 풀고 오셨거나 for문에 대해 사용 방법을 알고 있다면 그리 어렵지 않은 문제다. 혹여 for문에 대해 잘 모른다면 아래 글에서 알고리즘 부분을 참고하시길 바란다. 기초적인 사용 방법에 대해 설명하고 있다. st-lab.tistory.com/228 [백준] 2739번 : 구구단 - [C++] www.acmicpc.net/problem/2739 2739번: 구구단 N을 입력받은 뒤, 구구단 N단을 출력하는 프로그램을 작성하시오. 출력 형식에 맞춰서 출력하면 된다. www.acmic..