알고리즘을 하는 학생들이라면 정보올림피아드에 출전하여 전국대회에서 수상하는 것은 참으로 큰 의미있는 대회라고 생각 하고 있습니다.(정보올림피아드 준비 해 준 모든 학생들에게 고생했다는 이야기를 먼저 해 주고 싶습니다.^^)
저희 원에서도 올해 도전한 학생들이 있었는데 아쉽게 시도대회 장려로 끝난 사례가 있어서...
정말로 전국대회의 벽은 높고도 높다는 생각을 많이 하게 된 계기가 되었는데요...
중학생인 경우는 1년 준비해서 전국대회 가는 것이 많이 버겁구나 하는 것을 느끼기도 했구요...
또한 제가 많이 부족하구나 하는것도 깨닫게 되었네요.
그래도 내년에는 중3 학생들이 졸업을 하니까...
그리고 또 일년간 더 쌓아온 내공이 있으니까...
내년에는 꼭 전국대회 갈수 있을거라 생각을 하고 있답니다.
오늘은 지난 7월 20일에 전국대회를 치른 문제중에서 가장 기본이 되는 초등1번문제 딱지놀이 문제를 풀어 보았습니다.
문제는 http://jungol.co.kr/bbs/board.php?bo_table=pbank&wr_id=2377&sca=60&s1=&s2=&s3=&s4=
정올 사이트를 참고해 주시면 좋겠습니다.
문제 요약을 하면 다음과 같습니다.
● 만약 두 딱지의 별의 개수가 다르다면, 별이 많은 쪽의 딱지가 이긴다. 별, 동그라미, 네모, 세모를 각각 숫자 4, 3, 2, 1로 표현한다.
|
입력 예에서 5 개의 데이터를 입력 받고 있구요...
A는 1개 그림만 나왔는데 1개 그림이 4(별) 이라는 얘기구요.
B는 4개 그림이 나왔는데 3(동그라미),3(동그라미),2(네모),1(세모) 의 그림이 나왔다는 얘기 입니다.
이렇게 쌍이 5개로 나누어져서 출력 예제는 5개가 나오는 것입니다.
문제는 다음과 같이 풀어 보았습니다.
/************************************************************** Problem: 3072 User: icon001 Language: C++ Result: Success Time:19 ms Memory:1740 kb ****************************************************************/ #include <iostream> #include <stdio.h> using namespace std; int main() { int n; //freopen("input.txt","r",stdin); scanf ( "%d" ,&n); for ( int i = 0;i<n;i++) { int an,bn,temp; int aImage[5]={0,}; //a그림 갯수 int bImage[5]={0,}; //b그림 갯수 scanf ( "%d" ,&an); //a의 갯수를 입력 받자. for ( int j=0;j<an;j++) { scanf ( "%d" ,&temp); aImage[temp]++; //그림 갯수를 입력 하자 } scanf ( "%d" ,&bn); //a의 갯수를 입력 받자. for ( int j=0;j<bn;j++) { scanf ( "%d" ,&temp); bImage[temp]++; //그림 갯수를 입력 하자 } int flag=0; for ( int j=4;j>0;j--) //4점짜리 별부터 체크 하면서 같으면 그 다음 체크 다르면 이긴 사람 출력 { if (aImage[j]==bImage[j]) continue ; //같으면 다음 체크 if (aImage[j]>bImage[j]) { flag=1; printf ( "A\n" ); break ; } else { flag=1; printf ( "B\n" ); break ; } } if (flag==0) //무승부이다. { printf ( "D\n" ); } } return 0; }
|
A 그림의 번호를 입력 받으면서 aImage[그림번호] 위치를 카운터 증가 했구요.
B 그림의 번호를 입력 받으면서 bImage[그림번호] 위치를 카운터 증가 했습니다.
그리고 4번째 그림부터 앞으로 나오면서 나온 갯수를 비교해서.
4번째 그림이 많은 것을 승자 같으면 3번째 꺼 비교... 이런식으로 비교했습니다.
가장 기본적인 알고리즘에 속하는 문제 유형이었습니다.
'강의자료 > 정보영재' 카테고리의 다른 글
우리 아이가 정보올림피아드에 소질이 있을까? (4) | 2017.09.07 |
---|---|
2017년 정보올림피아드 예선 중13번 문제 풀이 (2) | 2017.08.31 |
탁구공 12개 양팔저울만을 이용하여 불량공 1개 찾아내는 방법 (320) | 2017.08.04 |
아이들에게 내 준 퀴즈 문제인데... 같이 한번 풀어 보시겠어요.^^ (310) | 2017.08.02 |
NYPC2016 예선문제]넥슨은 다람쥐를 뿌려라 문제 분석 해 봤어요. (6) | 2017.07.27 |