프로그래머스

[프로그래머스] 프로그래머스 Level1 모의고사 Java

2022. 5. 6. 16:55
목차
  1. 문제
  2. 풀이
  3. 코드

문제

https://programmers.co.kr/learn/courses/30/lessons/42840

 

코딩테스트 연습 - 모의고사

수포자는 수학을 포기한 사람의 준말입니다. 수포자 삼인방은 모의고사에 수학 문제를 전부 찍으려 합니다. 수포자는 1번 문제부터 마지막 문제까지 다음과 같이 찍습니다. 1번 수포자가 찍는

programmers.co.kr

풀이

따로 문제를 풀기 위한 알고리즘은 필요하지 않은 거 같고 구현으로 문제를 해결할 수 있었다.

1, 2, 3번 수포자의 정답 패턴을 배열로 만들어 주었고, 각각의 인덱스를 따로 변수 선언 해주어(oneIdx,  twoIdx...) while 루프를 돌며 각각의 점수를 측정해주었다. while 루프에선 정답 패턴의 크기(idx)에 맞게만 돌 수 있도록 정답 패턴의 idx를 넘어가면 0으로 초기화 해주었고 while 루프가 끝나 각 수포자들의 점수를 얻어오면 최댓값을 도출하여 최댓값을 가지는 사람들을 leaderBoard에 넣어주고 leaderBoard의 각각의 요소들을 다시 answers로 리턴해줄 수 있도록 answers에 넣어주었다.

int 변수를 각각 선언하는 것 보다는 3의 크기를 가진 배열로 관리해주면 코드가 더 깔끔하고 보기 좋을 거 같다.

코드

class Solution {
    public int[] solution(int[] answers) {

        final int[] one = {1, 2, 3, 4, 5};
        final int[] two = {2, 1, 2, 3, 2, 4, 2, 5};
        final int[] three = {3, 3, 1, 1, 2, 2, 4, 4, 5, 5};

        int temp = 0;

        int oneScore = 0;
        int twoScore = 0;
        int threeScore = 0;

        int answerIdx = 0;
        int oneIdx = 0;
        int twoIdx = 0;
        int threeIdx = 0;

        while (true) {
            if(one[oneIdx] == answers[answerIdx]) {
                oneScore++;
            }
            if(two[twoIdx] == answers[answerIdx]) {
                twoScore++;
            }
            if(three[threeIdx] == answers[answerIdx]) {
                threeScore++;
            }

            oneIdx++;
            twoIdx++;
            threeIdx++;
            answerIdx++;

            if(oneIdx == 5) {
                oneIdx = 0;
            }
            if(twoIdx == 8) {
                twoIdx = 0;
            }
            if(threeIdx == 10) {
                threeIdx = 0;
            }

            if(answerIdx == answers.length) {
                break;
            }
        }

        temp = Math.max(oneScore, twoScore);
        temp = Math.max(temp, threeScore);

        String leaderBoard = "";

        if(temp == oneScore) {
            leaderBoard += "1";
        }
        if(temp == twoScore) {
            leaderBoard += "2";
        }
        if(temp == threeScore) {
            leaderBoard += "3";
        }

        int[] answer = new int[leaderBoard.length()];

        for(int i = 0; i < leaderBoard.length(); i++) {
            answer[i] = Character.getNumericValue(leaderBoard.charAt(i));
        }

        return answer;
    }
}
저작자표시 비영리 동일조건 (새창열림)

'프로그래머스' 카테고리의 다른 글

[프로그래머스] 프로그래머스 Level1 [1차] 비밀지도 Java (카카오 코딩테스트)  (0) 2022.05.12
[프로그래머스] 프로그래머스 Level1 실패율 Java (카카오 코딩테스트)  (0) 2022.05.06
[프로그래머스] 프로그래머스 Level3 정수 삼각형 Java  (0) 2022.05.06
[프로그래머스] 프로그래머스 Level2 점프와 순간 이동 Java  (0) 2022.05.05
[프로그래머스] 프로그래머스 Level1 신규 아이디 추천 Java (카카오 코딩테스트)  (0) 2022.05.04
  1. 문제
  2. 풀이
  3. 코드
'프로그래머스' 카테고리의 다른 글
  • [프로그래머스] 프로그래머스 Level1 [1차] 비밀지도 Java (카카오 코딩테스트)
  • [프로그래머스] 프로그래머스 Level1 실패율 Java (카카오 코딩테스트)
  • [프로그래머스] 프로그래머스 Level3 정수 삼각형 Java
  • [프로그래머스] 프로그래머스 Level2 점프와 순간 이동 Java
Doshisha
Doshisha
Doshisha
Doshisha
Doshisha
전체
오늘
어제
  • 분류 전체보기
    • Java
    • Spring
    • Project
      • Gameple
      • 피파온라인 검색 사이트
    • Node.js
    • DBMS
      • MySQL
      • MSSQL
    • AWS
    • BOJ
    • 프로그래머스
    • 프로그래머스-SQL
    • 컴퓨터 구조
    • 네트워크
    • Git
    • IDE
    • 후기 및 회고
    • 기타
    • Linux
    • Frontend
      • Vue.js
      • jQuery
      • JavaScript
    • Unity
    • WAS
      • Tomcat
    • Jenkins

블로그 메뉴

  • 방명록
  • Github

공지사항

인기 글

태그

  • 코테
  • 프로그래머스
  • DP
  • 네트워크
  • mysql 서브쿼리
  • 일본
  • 백트래킹
  • 게임 API 연동
  • 게임 플랫폼
  • 모두의 네트워크
  • 카카오 코딩테스트
  • 카카오 코테
  • Spring Data JPA
  • SpringBoot Jenkins
  • MySQL
  • 백준
  • 프로그래머스 SQL
  • Gameple
  • java
  • C++ BFS
  • 넥슨 오픈 API
  • 자바
  • 구현
  • boj
  • SpringBoot Jenkins CI/CD
  • 카카오
  • c++
  • 게임 플랫폼 개발
  • 문자열
  • BFS

최근 댓글

최근 글

hELLO · Designed By 정상우.
Doshisha
[프로그래머스] 프로그래머스 Level1 모의고사 Java
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.