난이도 : D3
문제번호 : 8104
※ 저의 풀이가 무조건적인 정답은 아닙니다.
다른 코드가 좀더 효율적이고 좋을 수 있습니다.
다른사람들의 풀이는 언제나 참고만 하시기 바랍니다.
문제 주소 및 출처입니다.
SW Expert Academy
SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!
swexpertacademy.com
목차
1. 문제 설명
2. 문제 해석
3. 소스 코드
1. 문제 설명
삼성대학교 프로그래밍 기초 과목에서 조별과제를 위해 N명으로 구성된 조를 K개 만들고자 한다. - … |
입력
첫 번째 줄에 테스트 케이스의 수 T가 주어진다. |
출력
각 테스트 케이스마다 ‘#x’(x는 테스트케이스 번호를 의미하며 1부터 시작한다)를 출력하고, |
예시
입력 | 출력 |
1 |
#1 50 50 50 50 50 50 |
2. 문제풀이
규칙만 찾으면 바로 풀 수 있다고 하는데 그냥 시키는 대로 풀었다... 아래 위로 지그지그로 돌면서 배열을 채워주고 밑에서 row를 각각 더해서 값을 만들었다. |
3. 소스코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
#include <iostream>
#include <vector>
using namespace std;
//D3 8104 조 만들기
int main(){
int T, n, k = 0;
cin >> T;
for (int t = 1; t <= T; t++) {
cin >> n >> k;
vector<vector<int>> arr(k);
int count = 1;
//정방향, 역방향으로 계산
for (int i = 0; count <= n*k; i++) {
for (int j = 0; j < k; j++)
arr[j].push_back(count++);
//조원이 홀수인경우를 위해 멈춤
if (count > n*k) break;
for (int j = k-1; j>=0; j--)
arr[j].push_back(count++);
}
cout << "#" << t << " ";
for (int i = 0; i < k; i++) {
int answer = 0;
for (int j = 0; j < arr[i].size(); j++) {
answer += arr[i][j];
}
cout << answer << ' ';
}
cout << endl;
}
return 0;
}
|
'코딩테스트 > SWExpertAcademy' 카테고리의 다른 글
제로 C++(SW Expert Academy) (0) | 2020.04.11 |
---|---|
적고 지우기 C++(SW Expert Academy) (0) | 2020.04.10 |
삼성시의 버스 노선 Python(SW Expert Academy) (0) | 2020.04.08 |
정곤이의 단조 증가하는 수 Python(SW Expert Academy) (0) | 2020.04.07 |
세제곱근을 찾아라 Python(SW Expert Academy) (0) | 2020.04.06 |
댓글