Coding Test
-
[SWEA] 2001. 파리 퇴치 c++Coding Test/SW Expert Academy 2022. 11. 15. 12:23
문제 N x N 배열 안의 숫자는 해당 영역에 존재하는 파리의 개수를 의미한다. M x M 크기의 파리채를 한 번 내리쳐 최대한 많은 파리를 죽이고자 한다. 파리를 잡을 수 있는 최댓값을 구하는 문제이다. [제약 사항] 1. N 은 5 이상 15 이하이다. 2. M은 2 이상 N 이하이다. 3. 각 영역의 파리 갯수는 30 이하 이다. [입력] 가장 첫 줄에는 테스트 케이스의 개수 T가 주어지고, 그 아래로 각 테스트 케이스가 주어진다. 각 테스트 케이스의 첫 번째 줄에 N 과 M 이 주어지고, 다음 N 줄에 걸쳐 N x N 배열이 주어진다. [출력] 출력의 각 줄은 '#t'로 시작하고, 공백을 한 칸 둔 다음 정답을 출력한다. (t는 테스트 케이스의 번호를 의미하며 1부터 시작한다.) input out..
-
[SWEA] 2005. 파스칼의 삼각형 c++Coding Test/SW Expert Academy 2022. 11. 15. 10:30
문제 크기가 N인 파스칼의 삼각형을 만들어야 한다. 입력 1 4 출력 #1 1 1 1 1 2 1 1 3 3 1 문제 해결 이전 행렬의 j, j+1 열의 값을 더하면 현재의 값이 된다. index범위가 벗어난다면 0으로 계산하면 된다. #include #include using namespace std; int main(int argc, char** argv) { int test_case; int T; cin>>T; for(test_case = 1; test_case > n; cout
-
[SWEA] 2007. 패턴 마디의 길이 c++Coding Test/SW Expert Academy 2022. 11. 15. 09:40
문제 패턴에서 반복되는 부분을 마디라고 부른다. 문자열을 입력 받아 마디의 길이를 출력하는 프로그램을 작성하라. [제약 사항] 각 문자열의 길이는 30이다. 마디의 최대 길이는 10이다. [입력] 가장 첫 줄에는 테스트 케이스의 개수 T가 주어지고, 그 아래로 각 테스트 케이스가 주어진다. 각 테스트 케이스의 첫 번째 줄에는 길이가 30인 문자열이 주어진다. [출력] 출력의 각 줄은 '#t'로 시작하고, 공백을 한 칸 둔 다음 정답을 출력한다. (t는 테스트 케이스의 번호를 의미하며 1부터 시작한다.) 문제 해결 1. substr를 이용해서 마디 검사를 한다. 2. 인덱스로 접근하기 때문에 out of range를 방지하기 위해 인덱스 검사도 추가하였다. tmp.substr(i, i) : i 부터 i개 ..
-
[SWEA] 1859. 백만 장자 프로젝트 c++Coding Test/SW Expert Academy 2022. 11. 14. 23:37
문제 1. 연속된 N일 동안의 물건의 매매가가 주어진다. 2. 하루에 최대 1만큼 구입할 수 있다. 3. 판매는 얼마든지 할 수 있다. 입력 첫 번째 줄에 테스트 케이스의 수 T가 주어진다. 각 테스트 케이스 별로 첫 줄에는 자연수 N(2 ≤ N ≤ 1,000,000)이 주어지고, 둘째 줄에는 각 날의 매매가를 나타내는 N개의 자연수들이 공백으로 구분되어 순서대로 주어진다. 각 날의 매매가는 10,000이하이다. 출력 각 테스트 케이스마다 ‘#x’(x는 테스트케이스 번호를 의미하며 1부터 시작한다)를 출력하고, 최대 이익을 출력한다. 문제 해결 1. N일 동안의 물건의 매매가를 vector에 저장한다. (N일 동안의 물건의 매매가를 알고 있다는 가정이므로) 2. vector 뒤에서 부터 검사한다. 3. ..
-
[프로그래머스] 과일 장수 c++Coding Test/programmers 2022. 11. 11. 17:03
문제 설명 과일 장수가 사과 상자를 포장하고 있습니다. 사과는 상태에 따라 1점부터 k점까지의 점수로 분류하며, k점이 최상품의 사과이고 1점이 최하품의 사과입니다. 사과 한 상자의 가격은 다음과 같이 결정됩니다. 한 상자에 사과를 m개씩 담아 포장합니다. 상자에 담긴 사과 중 가장 낮은 점수가 p (1 ≤ p ≤ k)점인 경우, 사과 한 상자의 가격은 p * m 입니다. 과일 장수가 가능한 많은 사과를 팔았을 때, 얻을 수 있는 최대 이익을 계산하고자 합니다.(사과는 상자 단위로만 판매하며, 남는 사과는 버립니다) 예를 들어, k = 3, m = 4, 사과 7개의 점수가 [1, 2, 3, 1, 2, 3, 1]이라면, 다음과 같이 [2, 3, 2, 3]으로 구성된 사과 상자 1개를 만들어 판매하여 최대 ..
-
[프로그래머스] 거리두기 확인하기 c++Coding Test/programmers 2022. 10. 12. 10:59
문제 설명 대기실은 5개이며, 각 대기실은 5x5 크기입니다. 거리두기를 위하여 응시자들 끼리는 맨해튼 거리1가 2 이하로 앉지 말아 주세요. 단 응시자가 앉아있는 자리 사이가 파티션으로 막혀 있을 경우에는 허용합니다. ※ 두 테이블 T1, T2가 행렬 (r1, c1), (r2, c2)에 각각 위치하고 있다면, T1, T2 사이의 맨해튼 거리는 |r1 - r2| + |c1 - c2| 입니다. 제한 사항 places의 행 길이(대기실 개수) = 5 places의 각 행은 하나의 대기실 구조를 나타냅니다. places의 열 길이(대기실 세로 길이) = 5 places의 원소는 P,O,X로 이루어진 문자열입니다. places 원소의 길이(대기실 가로 길이) = 5 P는 응시자가 앉아있는 자리를 의미합니다. O..
-
[프로그래머스] 모음사전 c++Coding Test/programmers 2022. 10. 11. 15:26
문제 설명 사전에 알파벳 모음 'A', 'E', 'I', 'O', 'U'만을 사용하여 만들 수 있는, 길이 5 이하의 모든 단어가 수록되어 있습니다. 사전에서 첫 번째 단어는 "A"이고, 그다음은 "AA"이며, 마지막 단어는 "UUUUU"입니다. 단어 하나 word가 매개변수로 주어질 때, 이 단어가 사전에서 몇 번째 단어인지 return 하도록 solution 함수를 완성해주세요. 제한 사항 word의 길이는 1 이상 5 이하입니다. word는 알파벳 대문자 'A', 'E', 'I', 'O', 'U'로만 이루어져 있습니다. 입출력 예 word result "AAAAE" 6 "AAAE" 10 "I" 1563 "EIO" 1189 풀이 #include #include using namespace std; s..
-
[프로그래머스] 할인 행사 c++Coding Test/programmers 2022. 10. 11. 14:03
문제 설명 XYZ 마트는 일정한 금액을 지불하면 10일 동안 회원 자격을 부여합니다. XYZ 마트에서는 회원을 대상으로 매일 한 가지 제품을 할인하는 행사를 합니다. 할인하는 제품은 하루에 하나씩만 구매할 수 있습니다. 알뜰한 정현이는 자신이 원하는 제품과 수량이 할인하는 날짜와 10일 연속으로 일치할 경우에 맞춰서 회원가입을 하려 합니다. 예를 들어, 정현이가 원하는 제품이 바나나 3개, 사과 2개, 쌀 2개, 돼지고기 2개, 냄비 1개이며, XYZ 마트에서 15일간 회원을 대상으로 할인하는 제품이 날짜 순서대로 치킨, 사과, 사과, 바나나, 쌀, 사과, 돼지고기, 바나나, 돼지고기, 쌀, 냄비, 바나나, 사과, 바나나인 경우에 대해 알아봅시다. 첫째 날부터 열흘 간에는 냄비가 할인하지 않기 때문에 첫..