cpp(262)
-
[백준 BOJ] 23881번 알고리즘 수업 - 선택 정렬 1 (C++/cpp)
문제 설명 https://www.acmicpc.net/problem/23881 23881번: 알고리즘 수업 - 선택 정렬 1 첫째 줄에 배열 A의 크기 N(5 ≤ N ≤ 10,000), 교환 횟수 K(1 ≤ K ≤ N)가 주어진다. 다음 줄에 서로 다른 배열 A의 원소 A1, A2, ..., AN이 주어진다. (1 ≤ Ai ≤ 109) www.acmicpc.net 접근 방법 - 선택 정렬 알고리즘 기본 문제 백준의 23881번 문제는 선택 정렬 알고리즘을 이용하여 해결해야 하는 문제이다. 해당 문제는, 선택 정렬을 진행하면서, 입력받은 교환 횟수에서 교환되는 두 숫자를 출력해야 하는 문제이다. 문제에 제시된 선택 정렬은, 맨 끝에서부터 큰 숫자를 차례로 선택하고 배치하며 정렬을 수행하는 알고리즘이다. 자..
2022.03.14 -
[백준 BOJ] 1547번 공 (C++/cpp)
문제 설명 https://www.acmicpc.net/problem/1547 1547번: 공 첫째 줄에 컵의 위치를 바꾼 횟수 M이 주어지며, M은 50보다 작거나 같은 자연수이다. 둘째 줄부터 M개의 줄에는 컵의 위치를 바꾼 방법 X와 Y가 주어지며, X번 컵과 Y번 컵의 위치를 서로 바꾸는 것 www.acmicpc.net 접근 방법 - 수학적 사고력이 필요한 문제 백준의 1547번 문제는 수학적 사고력을 이용하여 해결해야 하는 문제이다. 해당 문제는, 컵을 교체하는 게임을 한 뒤 최종적으로 공이 위치한 컵의 숫자를 출력해야 하는 문제이다. 필자는 배열을 선언한 뒤 배열값을 교체하면서 해당 문제를 간단하게 해결하였다. 자세한 설명은 아래의 코드와 함께 추가적으로 하고자 한다. 필자는 아래의 순서대로 코..
2022.03.14 -
[백준 BOJ] 2743번 단어 길이 재기 (C++/cpp)
문제 설명 https://www.acmicpc.net/problem/2743 2743번: 단어 길이 재기 알파벳으로만 이루어진 단어를 입력받아, 그 길이를 출력하는 프로그램을 작성하시오. www.acmicpc.net 접근 방법 - 문자열 함수를 이용한 기본 연산 백준의 2743번 문제는 string 헤더의 함수를 이용해 간단하게 해결할 수 있는 문제이다. 해당 문제는, 입력받은 문자열의 길이를 출력해야 하는 문제이다. 여기에서 필자가 사용한 함수는 length() 함수인데, 이는 즉 특정 문자열의 크기 및 길이를 반환하는 함수이다. (여기서, 필자는 C++로 코딩을 진행하였음을 알린다.) 필자는 이 함수를 이용해 아주 간단하게 문제를 해결하였다. 많이 사용되는 함수이니 몰랐다면 꼭 참고하길 바란다. 필자..
2022.03.06 -
[백준 BOJ] 1018번 체스판 다시 칠하기 (C++/cpp)
문제 설명 https://www.acmicpc.net/problem/1018 1018번: 체스판 다시 칠하기 첫째 줄에 N과 M이 주어진다. N과 M은 8보다 크거나 같고, 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에는 보드의 각 행의 상태가 주어진다. B는 검은색이며, W는 흰색이다. www.acmicpc.net 접근 방법 - 브루트포스 알고리즘을 이용한 연산 문제 백준의 1018번 문제는 브루트포스 알고리즘을 이용하여 해결해야 하는 문제이다. 해당 문제는, 입력받은 보드를 잘라 체스판으로 만들 때 다시 칠해야하는 칸의 최소 개수를 구해야하는 문제이다. 브루트포스 알고리즘에 관한 다른 문제에 관해 이전에 필자가 작성한 글이 있다. 이 알고리즘에 대해 아직 어색하다면 아래의 링크 글을 한번..
2022.03.05 -
[백준 BOJ] 5597번 과제 안 내신 분..? (C++/cpp)
문제 설명 https://www.acmicpc.net/problem/5597 5597번: 과제 안 내신 분..? X대학 M교수님은 프로그래밍 수업을 맡고 있다. 교실엔 학생이 30명이 있는데, 학생 명부엔 각 학생별로 1번부터 30번까지 출석번호가 붙어 있다. 교수님이 내준 특별과제를 28명이 제출했는데, www.acmicpc.net 접근 방법 - 배열을 이용한 간단한 연산 백준의 5597번 문제는 배열을 이용한 간단한 연산 문제이다. 해당 문제는, 28명의 제출자 출석 번호를 입력받으며 제출하지 않은 2명의 출석 번호를 출력해야 하는 문제이다. 필자는 앞에서도 작성하였다시피, 배열을 이용하여 이 문제를 해결하였다. 받는 입력값에 대응하는 배열값에 1을 더하면서 입력을 전부 받은 뒤, 최종적으로 배열값이..
2022.02.27 -
[백준 BOJ] 2164번 카드2 (C++/cpp)
문제 설명 https://www.acmicpc.net/problem/2164 2164번: 카드2 N장의 카드가 있다. 각각의 카드는 차례로 1부터 N까지의 번호가 붙어 있으며, 1번 카드가 제일 위에, N번 카드가 제일 아래인 상태로 순서대로 카드가 놓여 있다. 이제 다음과 같은 동작을 카드가 www.acmicpc.net 접근 방법 - 큐를 이용한 간단한 연산 백준의 2164번 문제는 큐를 이용하여 간단하게 해결할 수 있는 문제이다. 해당 문제는, 일정 규칙에 따라 카드를 옮기고 버리면서 가장 마지막에 남는 카드를 구해야 하는 문제이다. 여기서 규칙은 간단하게, 제일 위에 있는 첫 번째 카드는 버리고 두 번째 카드는 맨 아래로 다시 넣는 행위의 반복이다. 필자는 큐를 선언하여 해당 문제를 해결하였다. 어..
2022.02.27