프로그래머스 lv1 모의고사

namkun·2022년 7월 2일
0

코딩테스트

목록 보기
9/79

문제 링크

모의고사

풀이

import java.util.ArrayList;

class Solution {
		public Integer[] solution(int[] answers) {
		Integer[] answer = {};

		int[] personA = {1, 2, 3, 4, 5};
		int[] personB = {2, 1, 2, 3, 2, 4, 2, 5};
		int[] personC = {3, 3, 1, 1, 2, 2, 4, 4, 5, 5};

		int a = checkScore(answers, personA);
		int b = checkScore(answers, personB);
		int c = checkScore(answers, personC);

		return compare(a, b, c);
	}

	int checkScore(int[] answers, int[] compareArr) {
		int result = 0;
		for (int i = 0; i < answers.length; i++) {
			if (answers[i] == compareArr[i % compareArr.length]) result++;
		}
		return result;
	}

	Integer[] compare(int a, int b, int c) {
		ArrayList<Integer> list = new ArrayList();

		if (a > b && a > c) {
			list.add(1);
		} else if (b > a && b > c) {
			list.add(2);
		} else if (c > a && c > b) {
			list.add(3);
		} else if (a == b && a > c) {
			list.add(1);
			list.add(2);
		} else if (b == c && b > a) {
			list.add(2);
			list.add(3);
		} else if (a == c && a > b) {
			list.add(1);
			list.add(3);
		} else if (a == b && b == c) {
			list.add(1);
			list.add(2);
			list.add(3);
		}

		return list.stream().map(x -> x.intValue()).toArray(Integer[]::new);
	}
}

소감

  • 머리가 나쁘면 손이 고생한다..
  • Math.max 함수를 사용하면 훨씬 쉽게 비교할 수 있다. 어흐흑
profile
개발하는 중국학과 사람

0개의 댓글