메타인지

김소희·2023년 2월 15일
2

지난주부터 백준 배열 문제들을 풀기 시작했는데
반복 문과 달리 몇 시간 아니 며칠을 생각해도 도저히 풀리지가 않다가
결국 다른 사람의 풀이 과정으로 힌트를 얻고 풀게 되었다.
그 후 몇 문제는 잘 풀다가 마지막 문제에서 또다시 막히고 말았다.

풀고있는 백준문제 ∇
https://www.acmicpc.net/problem/4344

직접 타이핑한 인풋은 아웃풋이 잘 출력되지만
복사해서 붙여 넣은 인풋에는 아웃풋 마지막 줄이 출력되지않는 상황이었고
퇴근한 남자친구에게 어디가 문제인지 같이 찾아봐달라고 이야기했다.

찾아낸 원인은 내가 작성한 코드는 입력과 출력이 번갈아가면서 작동하고 있었고,
문제가 원하는 답은 입력을 한 번에 마치고, 출력도 한 번에 동작하는 것이었다.

틀린 곳은 그뿐이 아니었다.
사용되지 않는 for 문이 있었고, 부등호가 반대로 있었던 곳도 찾아주고,
들여 쓰기가 잘못된 부분을 고쳐주고,
for 문의 변수 선언에 i,j,k,l까지 동원된 걸 보고
for 문의 변수 선언은 중괄호({}) 안에서만 이루어지니 매번 다른 걸 쓰지 않아도 된다고도 알려주었다.

이상하게도 나는 갑자기 눈물이 날 것 같았다.

남자친구는 친절하고 다정한 말투로 차근차근 알려주고 있는데
어째서 나는 비난받은 기분이 드는지, 왜 창피한지, 왜 좌절감이 드는지,
왜 속상한지 모르겠으면서 당황스러우면서도 무척 힘들었다.


메타인지란
1. 자기 자신의 거울이고
2. 거울을 보며 나의 스스로를 믿는 능력이고
3. 나의 완벽하지 않은 모습을 인정하는 것이다.

https://www.youtube.com/watch?v=9vjJC7TwA3Y
'세바시강연'이라는 유튜브 채널에
리사 손 교수님이 메타인지에 관해 강연한 영상이 있는데
나는 강연을 보고 그때 왜 그런 기분이 들었는지 알게 되었다.
그때의 난 완벽하지 않은 나 자신을 들켰다는 생각에 그랬던 것이었다.
깨닫고 나니 또다시 후회하는 내 모습 사이로
긍정적이고 용기가 넘치는 내 모습이 보이기 시작했다.

Scanner sc = new Scanner(System.in);
int testcase = sc.nextInt(); //첫째줄5입력받음

		double[] testscore = new double[testcase]; 

		
		for(int j=0; j<testcase; j++) {
			//앞에숫자입력받고o, 점수입력받기O, 평균구하기O
			int N = sc.nextInt(); //맨앞글자입력받기
			int fff = N;
			double sum = 0;
			double average = 0;
			double[] arr1 = new double[N]; //배열생성
			
			for(int k=0; k<N; k++) { //나머지 입력받기
				arr1[k] = sc.nextDouble();
				
				sum = arr1[k] + sum;     //합계구함
			}
			average = sum/N;  //평균구함 !!!마지막줄이안됨.
			
			double sum2 =0;
			for(double e : arr1) { //차례로 실행시켜줌
				if(e>average) {
					sum2 = sum2+100; 	
				}			
			}
			testscore[j] = sum2/fff;

		}
		for(double e : testscore) { 
		System.out.println(String.format("%.3f", e)+"%");
		}

나는 문제를 해결했다. 해결하고 나니 이 문제에게 많은 고마움을 느낀다.

정리되지 않은 주석들이 붙어있고, 실수투성이의 코드일지라도
작성하기 위해 쓴 시간들이 결코 헛되지 않았다는 걸 안다.
오히려 많이 틀려본다면 그만큼 더 배울 수 있다는 것이고,
그때마다 내가 완벽하지 않다는 사실을 한 번 더 바라볼 수 있다.

나는 지금 배우는 중에 있으며, 노력하면 더 좋은 모습으로 발전할 수 있다.
그러니 용기를 내서 진정한 나를 알아가고, 나를 믿고, 노력해야겠다.

profile
백엔드 개발자 소희의 모험

0개의 댓글