Coding Test/SW Expert Academy
-
[SWEA] 1206. [S/W 문제해결 기본] 1일차 - View c++Coding Test/SW Expert Academy 2022. 11. 19. 19:11
문제 왼쪽과 오른쪽으로 창문을 열었을 때, 양쪽 모두 거리 2 이상의 공간이 확보될 때 조망권이 확보된다고 말한다. 빌딩들에 대한 정보가 주어질 때, 조망권이 확보된 세대의 수를 반환하는 프로그램을 작성하시오. 문제 해결 "맨 왼쪽 두 칸과 맨 오른쪽 두 칸에 있는 건물은 항상 높이가 0이다." 라는 조건을 보고 (기준 index +- 2), (기준 index +-1) 값을 비교하여 풀어야 겠다고 판단했다. 기준 값이 비교 값보다 크다면, 비교 값들 중 max값을 찾아 (기준 값 - 비교 값) 을 하면 답을 구할 수 있다. #include #include #include using namespace std; int main(int argc, char** argv) { int test_case; int T..
-
[SWEA] 15230. 알파벳 공부 c++Coding Test/SW Expert Academy 2022. 11. 19. 14:54
문제 ※ SW expert 아카데미의 문제를 무단 복제하는 것을 금지합니다. 영어 알파벳은 라틴 문자 중에서 영어에 쓰이는 문자로 ‘a’에서 ‘z’까지 총 26가지 문자가 있다. 정확한 목록과 순서는 다음과 같다. abcdefghijklmnopqrstuvwxyz 어린 성훈이는 알파벳 공부를 하고 있어서, 몇 개의 알파벳을 적었다. 성훈이가 적은 알파벳을 순서대로 보면서 앞에서부터 몇 개의 알파벳이 순서에 맞게 적혀 있는지 구하는 프로그램을 작성하라. 단, 순서는 a부터 순서대로 일치하는 알파벳 개수를 계산하여야 한다. 문제 해결 a ~ z 의 아스키코드는 97 ~ 122이므로 이를 이용하면 된다. #include using namespace std; int main(int argc, char** argv..
-
[SWEA] 체스판 위의 룩 배치 c++Coding Test/SW Expert Academy 2022. 11. 19. 14:26
문제 ※ SW expert 아카데미의 문제를 무단 복제하는 것을 금지합니다. 8 x 8 크기의 체스판 위의 몇 개의 칸에 룩(rook)이 놓여 있다. 각 칸에는 최대 1개의 룩을 놓을 수 있으므로, 체스판 위에는 0개 이상 64개 이하의 룩이 놓여 있는 것이다. 이때, 현재 체스판의 배치가 다음 조건을 모두 만족하는지를 판별하는 프로그램을 작성하라. - 정확히 8개의 룩이 있어야 한다. - 모든 룩은 서로 공격할 수 없어야 한다. 즉, 서로 다른 두 룩은 같은 열에 있거나 같은 행에 있으면 안 된다. 각 테스트 케이스는 여덟 개의 줄로 이루어지며, 각 줄에는 길이가 8인 ‘O’ 또는 ‘.’로 구성된 문자열이 주어진다. i번째 줄의 j번째 글자는, 체스판의 i행 j열에 룩이 하나 놓여 있다면 ‘O’, 아무..
-
[SWEA] 1946. 간단한 압축 풀기 c++Coding Test/SW Expert Academy 2022. 11. 18. 20:57
문제 압축된 문서의 내용 A 10 B 7 C 5 압축을 풀었을 때 원본 문서의 내용 AAAAAAAAAA BBBBBBBCCC CC 문제 해결 #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; char a = 0; int b = 0; vector vec; for(int i = 0; i > a >> b; vec.push_back( {a, b}); } cout
-
[SWEA] 1948. 날짜 계산기 c++Coding Test/SW Expert Academy 2022. 11. 18. 13:26
문제 ※ SW Expert 아카데미의 문제를 무단 복제하는 것을 금지합니다. 월 일로 이루어진 날짜를 2개 입력 받아, 두 번째 날짜가 첫 번째 날짜의 며칠째인지 출력하는 프로그램을 작성하라. 문제 해결 #include using namespace std; int day[13] = { 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }; int main(int argc, char** argv) { int test_case; int T; cin>>T; for(test_case = 1; test_case > h1 >> m1 >> h2 >> m2; int result = day[h1] - m1 + 1; for(int i = h1 +1; i
-
[SWEA] 1954. 달팽이 숫자 c++Coding Test/SW Expert Academy 2022. 11. 18. 13:01
문제 ※ SW Expert 아카데미의 문제를 무단 복제하는 것을 금지합니다. 달팽이는 1부터 N*N까지의 숫자가 시계방향으로 이루어져 있다. 다음과 같이 정수 N을 입력 받아 N크기의 달팽이를 출력하시오. N이 3일 경우, 문제 해결 #include #include using namespace std; int dx[4] = { 1, 0, -1, 0}; int dy[4] = {0, 1, 0, -1}; int main(int argc, char** argv) { int test_case; int T; cin>>T; for(test_case = 1; test_case > n; int size = n * n, dir = 0; vector vec(n, vector(n, 0)); vec[0][0] = 1; int ..
-
[SWEA] 1959. 두 개의 숫자열 c++Coding Test/SW Expert Academy 2022. 11. 18. 09:50
문제 ※ SW Expert 아카데미의 문제를 무단 복제하는 것을 금지합니다. N 개의 숫자로 구성된 숫자열 Ai (i=1~N) 와 M 개의 숫자로 구성된 숫자열 Bj (j=1~M) 가 있다.서로 마주보는 숫자들을 곱한 뒤 모두 더할 때 최댓값을 구하라. 위 예제의 정답은 아래와 같이 30 이 된다. 문제 해결 #include #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 >>m; vector A(n, 0), B(m,0); for(int i = 0; i > A[i]; } for(int..
-
[SWEA] 1961. 숫자 배열 회전 c++Coding Test/SW Expert Academy 2022. 11. 17. 16:45
문제 ※ SW Expert 아카데미의 문제를 무단 복제하는 것을 금지합니다. N x N 행렬이 주어질 때, 시계 방향으로 90도, 180도, 270도 회전한 모양을 출력하라. input output 1 3 1 2 3 4 5 6 7 8 9 #1 741 987 369 852 654 258 963 321 147 문제 해결 0,0 0,1 0,2 1,0 1,1 1,2 2,0 2,1 2,2 > 90도 회전 2,0 1,0 0,0 2,1 1,1 0,1 2,2 1,2 0,2 > 180도 회전 2,2 2,1 2,0 1,2 1,1 1,0 0,2 0,1 0,0 > 270도 회전 0,2 1,2 2,2 0,1 1,1 2,1 0,0 1,0 2,0 회전에 따른 인덱스 변화를 확인하면 된다. #include using namespac..