본문 바로가기

C++ 코딩 문제 풀이151

[Programmers] 최솟값 만들기 https://school.programmers.co.kr/learn/courses/30/lessons/12941 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 해결 과정 착안 길이가 같은 배열에서 각각 하나씩 숫자를 뽑아 곱한 값을 누적하여 더할 때, 누적된 값이 가장 작도록 하기 위해서는 두 배열 중 하나는 오름차순으로, 하나는 내림차순으로 정렬하여 인덱스 순서대로 곱한다. 구현 [스포 주의] 아래 '더보기'를 누르면 코드가 나오니 주의하세요~ 더보기 #include #include #include using namespace std; int s.. 2023. 7. 30.
[Baekjoon] 13305번: 주유소 https://www.acmicpc.net/problem/13305 13305번: 주유소 표준 입력으로 다음 정보가 주어진다. 첫 번째 줄에는 도시의 개수를 나타내는 정수 N(2 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 인접한 두 도시를 연결하는 도로의 길이가 제일 왼쪽 도로부터 N-1 www.acmicpc.net 문제 해결 과정 착안 아래와 같이 탐욕(greedy) 알고리즘에 기반하여 문제를 해결할 수 있다. 현재 위치해 있는 도시의 주유 비용을 기준으로 삼는다. 순차적으로 우측 도시를 탐색하며 현재 도시의 주유 비용보다 주유 비용이 더 저렴한 도시를 탐색한다. 탐색에 성공하면, 현재 도시에서 주유하여 해당 도시까지 한 번에 이동한다. 탐색에 실패하면, 현재 도시에서 마지막 도시까지 한 번에.. 2023. 7. 28.
[Programmers] JadenCase 문자열 만들기 https://school.programmers.co.kr/learn/courses/30/lessons/12951 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 해결 과정 착안 공백을 기준으로 단어를 나눈 다음, 단어의 첫 글자를 대문자, 나머지 글자를 소문자로 변환한 결과 문자열을 누적하여 연결(concatenation)함으로써 문제를 해결하고자 하였다. 공백의 경우에는 별도의 처리 없이 문자열을 연결하고자 하였다. 구현 주어진 문자열 내의 단어들을 공백을 기준으로 구분하여 부분문자열(substring)을 구하기 위해 헤더에 포함된 find_fir.. 2023. 7. 28.
[Baekjoon] 16234번: 인구 이동 https://www.acmicpc.net/problem/16234 16234번: 인구 이동 N×N크기의 땅이 있고, 땅은 1×1개의 칸으로 나누어져 있다. 각각의 땅에는 나라가 하나씩 존재하며, r행 c열에 있는 나라에는 A[r][c]명이 살고 있다. 인접한 나라 사이에는 국경선이 존재한다. 모 www.acmicpc.net 문제 해결 과정 착안 너비 우선 탐색(breadth-first search, BFS) 알고리즘을 응용하여 날짜 별로 연합이 존재할 수 있는지 탐색해보고, 연합이 존재한다면 각 연합 별로 연합에 속하는 나라들의 인구를 산술평균 값으로 갱신하는 과정을 통해 문제를 해결하고자 하였다. 연합이 존재할 수 있는지 판단하는 과정에서, 인접한 나라와 직접적으로 국경선이 개방되어 연결되지 않더라도.. 2023. 7. 26.
[Baekjoon] 11404번: 플로이드 https://www.acmicpc.net/problem/11404 11404번: 플로이드 첫째 줄에 도시의 개수 n이 주어지고 둘째 줄에는 버스의 개수 m이 주어진다. 그리고 셋째 줄부터 m+2줄까지 다음과 같은 버스의 정보가 주어진다. 먼저 처음에는 그 버스의 출발 도시의 번호가 www.acmicpc.net 문제 해결 과정 착안 플로이드-워셜 알고리즘(Floyd-Warshall Algorithm)에 따라 문제에서 요구하는 도시 간 거리를 계산하고자 하였다. 음수 가중치 간선이 없기 때문에 일반적인 방법으로 문제를 해결하고자 하였다. 구현 알고리즘을 구현함에 있어서, 삼중 반복문의 루프 변수 배치 순서 및 시작 도시와 도착 도시 사이의 연결이 없는 경우를 0으로 표시하는 부분에 유의하여 프로그래밍 하였.. 2023. 7. 25.
[Baekjoon] 2293번: 동전 1 https://www.acmicpc.net/problem/2293 2293번: 동전 1 첫째 줄에 n, k가 주어진다. (1 ≤ n ≤ 100, 1 ≤ k ≤ 10,000) 다음 n개의 줄에는 각각의 동전의 가치가 주어진다. 동전의 가치는 100,000보다 작거나 같은 자연수이다. www.acmicpc.net 문제 해결 과정 착안 주어지는 $n$개의 동전의 가치를 편의상 각각 $c_i \space (1 \leq i \leq n)$라고 하면, 종류가 다른 동전이 하나하나 주어질 때마다 아래와 같은 원리에 의해 단계별로 사용하는 동전의 수를 늘려가면서 가치의 총 합이 $k$ 이하의 자연수가 되도록 만드는 경우의 수를 귀납적으로 구할 수 있다. [전제조건] 1) 동전들을 사용하여 만들 수 있는 가치의 총 합은.. 2023. 7. 24.