반응형
https://swexpertacademy.com/main/main.do
SW Expert Academy
SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!
swexpertacademy.com
1. 해결방법
1-1 오류발생
먼저 한 사람씩 비교하여 방문지로 체크했다가 다음 사람은 전에 방문했던적이 있는지 없는지 비교하여 cnt를 ++ 해주는 방법을 사용하였으나 첫방문자가 1~400까지 방문했을경우 나머지는 모두 ++ 되어버리는 오류가 존재하였다
1-2 오류코드
#include<iostream>
#include<string.h>
#include<algorithm>
using namespace std;
int N;
int now_room;
int next_room;
int cnt = 0;
int room[401] = {0};
int now_check;
int next_check;
int main(int argc, char** argv)
{
int test_case;
int T;
cin>>T;
for(test_case = 1; test_case <= T; ++test_case)
{
memset(room, 0 , sizeof(room));
cnt = 1;
cin>>N;
for(int i = 0; i < N; i++){
cin >> now_room;
cin >> next_room;
if(now_room > next_room){
swap(now_room, next_room);
}
for(int k = now_room; k<=next_room; k++){
if(room[k]){
cnt++;
break;
}
}
for(int j = now_room; j <= next_room; j++){
room[j] = 1;
}
}
cout << "#" << test_case << " " << cnt << endl;
}
return 0;//정상종료시 반드시 0을 리턴해야합니다.
}
2. 해결
1번 방법과 비슷한대신 방문지를 ++해주고 마지막에 방문지중 가장 큰 값을 return한다 이방법으로 1번의 오류를 해결하였다
코드
#include<iostream>
#include<string.h>
#include<algorithm>
using namespace std;
int N;
int now_room;
int next_room;
int room[401] = {0};
int now_check;
int next_check;
int cnt = 0;
int main(int argc, char** argv)
{
int test_case;
int T;
cin>>T;
for(test_case = 1; test_case <= T; ++test_case)
{
memset(room, 0 , sizeof(room));
cin>>N;
for(int i = 0; i < N; i++){
cin >> now_room;
cin >> next_room;
if(now_room > next_room){
swap(now_room, next_room);
}
if((now_room % 2) == 0) now_room--;
if((next_room % 2) == 1) next_room++;
for(int j = now_room; j <= next_room; j++){
room[j]++;
}
}
cnt = *max_element(room, room+401);
cout << "#" << test_case << " " << cnt << endl;
}
return 0;//정상종료시 반드시 0을 리턴해야합니다.
}
반응형
'코딩테스트 > SW expert' 카테고리의 다른 글
[SW Expert] #1219. S/W 문제해결 기본 4일차 - 길찾기 (0) | 2020.02.24 |
---|---|
[SW Expert] #1861. 정사각형 방 (0) | 2020.02.18 |
[SW Expert] #1486. 장훈이의 높은 선반 (0) | 2020.02.04 |
[SW Expert] #1220 S/W 문제해결 기본 5일차 - Magnetic (0) | 2020.02.03 |
[SW Expert] #1860 진기의 최고급 붕어빵 (0) | 2020.01.30 |