Notice
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- substr
- 레벨3
- 시뮬레이션
- 브루트포스
- 삼성SW역량테스트
- C++
- 코딩테스트
- 모의SW역량테스트
- dfs
- 백트래킹
- 백준
- 2018
- 삼성
- BFS
- find
- KAKAO
- 프로그래머스
- 코딩스킬
- 이런게4문제
- Map
- dp
- 완전탐색
- 레벨2
- priority_queue
- swea
- STL
- 삼성SW테스트
- Set
- Sort
- 문자열
Archives
- Today
- Total
-
[SWEA_모의SW역량테스트] 4014번 - 활주로 건설 본문
https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWIeW7FakkUDFAVH
삼성 SWEA 모의 SW역량 테스트 문제다.
이 문제는 삼성 SW역량 테스트 기출문제 https://cpp-dev.tistory.com/53 와 동일한 문제다.
이번에는 C언어로 짜보았다.
주어진 테스트 케이스에 대한 정답은
#1 7
#2 4
#3 11
#4 11
#5 15
#6 4
#7 4
#8 1
#9 5
#10 8 였다.
그래서 코드 작성하고 테스트 케이스에 대해 돌려 결과를 확인했더니 아래와 같은 결과가 나와서 틀리게 짠 줄 알았다.
그래서 뭐가 틀렸나 계속 보는데 틀린게 없어서 그냥 제출했더니 SWEA 채점 서버에서는 맞는 테스트케이스 정답을 출력했다.. 최종 제출결과도 역시 Pass였다..
뭔가 이상한 ..
아래는 C언어 기반 정답코드.
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
|
#include <stdio.h>
#pragma warning(disable:4996) // --> VS2013 콘솔 동작용
//#define _CRT_SECURE_NO_WARNINGS --> SWEA 제출용
int map[20][20];
int T, N, X;
void reset_map(){
for (int i = 0; i < 20; i++){
for (int j = 0; j < 20; j++){
map[i][j] = -1;
}
}
}
int confirm(int line[]){
int check[20];
for (int i = 0; i < 20; i++) check[i] = -1;
// 건설 가능하면 1, 건설 못하면 0반환
for (int i = 1; i < N; i++){
int diff = line[i] - line[i - 1];
if (diff < -1 || diff > 1) return -1;
else{
if (diff == 1){
// 올라가는 경우
if (i - X < 0) return -1;
for (int j = 1; j <= X; j++){
if (check[i - j] == 1) return -1;
if (line[i - 1] != line[i - j]) return -1;
check[i - j] = 1;
}
}
else if (diff == -1){
// 내려가는 경우
if (i + X - 1 >= N) return -1;
for (int j = 1; j <= X; j++){
if (check[i + j - 1] == 1) return 0;
if (line[i] != line[i + j - 1]) return 0;
check[i + j - 1] = 1;
}
}
}
}
return 1;
}
int main(){
scanf("%d", &T);
for (int tc = 1; tc <= T; tc++){
reset_map();
scanf("%d %d", &N, &X);
for (int i = 0; i < N; i++){
for (int j = 0; j < N; j++){
scanf("%d", &map[i][j]);
}
}
int answer = 0;
// 횡방향 검사
for (int r = 0; r < N; r++){
int line[20];
for (int j = 0; j < 20; j++) line[j] = -1;
for (int c = 0; c < N; c++){
line[c] = map[r][c];
}
if(confirm(line)==1) answer++;
}
// 종방향 검사
for (int c = 0; c < N; c++){
int line[20];
for (int j = 0; j < 20; j++) line[j] = -1;
for (int r = 0; r < N; r++){
line[r] = map[r][c];
}
if(confirm(line)==1) answer++;
}
printf("#%d %d\n", tc, answer);
}
return 0;
}
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4ftext-decoration:none">Colored by Color Scripter
|
http://colorscripter.com/info#e" target="_blank" style="text-decoration:none;color:white">cs |
'1-2. SWEA' 카테고리의 다른 글
[SWEA_모의SW역량테스트] 1953번 - 탈주범 검거 (0) | 2020.02.26 |
---|---|
[SWEA_모의SW역량테스트] 4013번 - 특이한 자석 (0) | 2020.01.28 |
[SWEA_모의SW역량테스트] 5644번 - 무선충전 (0) | 2020.01.27 |
[SWEA_모의SW역량테스트] 5648번 - 원자 소멸 시뮬레이션 (0) | 2020.01.25 |
[SWEA_모의SW테스트] 5650번 - 핀볼 게임 (0) | 2020.01.23 |
Comments