BOJ(343)
-
[백준 BOJ] 1181번 단어 정렬 (C++/cpp)
문제 설명 https://www.acmicpc.net/problem/1181 1181번: 단어 정렬 첫째 줄에 단어의 개수 N이 주어진다. (1 ≤ N ≤ 20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문자열의 길이는 50을 넘지 않는다. www.acmicpc.net 접근 방법 - 정렬의 응용문제 백준의 1181번 문제는 정렬에 대하여 다소 심화된 내용을 다루고 있는 문제이다. 해당 문제는, 아래와 같은 규칙으로 입력받은 단어들을 정렬하여 출력해야 하는 문제이다. (예시를 보면, 아래의 규칙을 이해하는 것이 보다 더 수월할 것이다.) - 길이 순으로 오름차순 정렬 - 길이가 같다면, 사전 순으로 오름차순 정렬 필자의 경우엔, 위 규칙처럼 ..
2022.07.25 -
[백준 BOJ] 10797번 10부제 (C++/cpp)
문제 설명 https://www.acmicpc.net/problem/10797 10797번: 10부제 서울시는 6월 1일부터 교통 혼잡을 막기 위해서 자동차 10부제를 시행한다. 자동차 10부제는 자동차 번호의 일의 자리 숫자와 날짜의 일의 자리 숫자가 일치하면 해당 자동차의 운행을 금지하는 www.acmicpc.net 접근 방법 - 논리 연산의 기본 문제 백준의 10797번 문제는 논리 연산에 있어 아주 기본적인 원리를 다루고 있는 문제이다. 해당 문제는, 5대의 차량 중 자동차 10부제를 어기고 있는 차량의 수를 출력해야 하는 문제이다. (10부제에 대한 자세한 설명은 문제를 참고해보길 바란다.) 해당 문제에선 날짜의 일의 자리 숫자와 차량들의 일의 자리 숫자가 모두 입력값으로 친절하게 제공된다. 따..
2022.07.19 -
[백준 BOJ] 2312번 수 복원하기 (C++/cpp)
문제 설명 https://www.acmicpc.net/problem/2312 2312번: 수 복원하기 첫째 줄에 테스트 케이스의 수가 주어진다. 각 테스트 케이스마다 양의 정수 N (2 ≤ N ≤ 100,000)이 주어진다. www.acmicpc.net 접근 방법 - 에라토스테네스의 체 알고리즘을 활용한 문제 백준의 2312번 문제는 에라토스테네스의 체 알고리즘을 이용하여 해결해야 하는 수학 문제이다. 해당 문제는, 입력값에 대한 소인수분해 결과를 출력해야 하는 문제이다. 여기서 소인수분해란, 소수들의 곱으로 합성수를 분해하는 과정을 의미한다. 따라서 해당 문제에선 소수를 구하는 과정이 중요시되기 때문에 에라토스테네스의 체를 사용할 필요가 있다고 볼 수 있다. 입력값의 크기가 그리 크지도 않으며 제한 시..
2022.07.18 -
[백준 BOJ] 14912번 숫자 빈도수 (C++/cpp)
문제 설명 https://www.acmicpc.net/problem/14912 14912번: 숫자 빈도수 자연수 n (1 ≤ n ≤ 100,000)과 한 자리 숫자 d(0~9)가 첫째 줄에 주어진다. www.acmicpc.net 접근 방법 - 브루트포스 알고리즘을 이용한 문제 백준의 14912번 문제는 브루트포스 알고리즘을 이용한 수학 문제이다. 해당 문제는, 1부터 입력받은 숫자(a)까지 특정 숫자(n)가 몇 개 포함되어있는지를 출력해야 하는 문제이다. 필자의 경우엔 이중 반복문을 이용하여 브루트포스 알고리즘을 수행하였다. 활용한 방법에 대해선 아래로 설명을 기재하였으니 자세한 내용은 아래를 참고해보길 바란다. 필자는 아래의 순서대로 코드를 작성하여 문제를 해결하였다. 코드의 실행 순서 1) a와 n을..
2022.07.17 -
[백준 BOJ] 11931번 수 정렬하기 4 (C++/cpp)
문제 설명 https://www.acmicpc.net/problem/11931 11931번: 수 정렬하기 4 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 숫자가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. www.acmicpc.net 접근 방법 - 정렬 함수 사용의 기본 문제 백준의 11931번 문제는 정렬 함수 사용에 있어 아주 기본적인 문제이다. 해당 문제는, 주어진 입력값들에 대하여 오름차순으로 정렬하여 출력해야 하는 문제이다. 이 문제는 정렬 함수 sort()를 사용하면 아주 쉽게 풀 수 있는 문제이기 때문에 어려움 없이 풀 수 있을 것으로 예상된다. 필자 또한 해당 함수를 사용하여 손쉽게 해..
2022.07.03 -
[백준 BOJ] 9076번 점수 집계 (C++/cpp)
문제 설명 https://www.acmicpc.net/problem/9076 9076번: 점수 집계 입력의 첫 줄에는 테스트 케이스의 개수 T(1 ≤ T ≤ 10)가 주어진다. 각 테스트 케이스는 한 줄에 다섯 심판이 준 점수 다섯 개의 정수 Ni(1 ≤ Ni ≤ 10, i = 1, 2, ..., 5)가 하나의 공백을 사이에 두고 www.acmicpc.net 접근 방법 - 정렬 함수 사용의 기본 문제 백준의 9076번 문제는 정렬 함수 사용에 있어 기본적인 문제이다. 해당 문제는, 입력받은 5개의 점수들에 대해 최종 점수를 출력하거나 재채점 여부에 대해 출력해야 하는 문제이다. 정렬 함수 sort()에 대해 알고 있다면, 문제의 흐름대로 코드를 작성해도 무관할 것이다. 필자 또한 그렇게 코드를 작성하여 ..
2022.07.03