8일차 - 알고리즘 코드카타

2024. 7. 24. 21:32·Java & Spring/코딩테스트

- 진행

일자 완료 번호
24.07.16 1~20
24.07.17 21~35
24.07.18 36~42
24.07.19 43~47
24.07.22 48~50
24.07.23 51~55
24.07.24 56~57

 

- 회고

57. 모의고사 : https://school.programmers.co.kr/learn/courses/30/lessons/42840

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

- 풀이과정

import java.util.*;
class Solution {
    public int[] solution(int[] answers) {
        int[] m1 = {1, 2, 3, 4, 5}; // 5
        int[] m2 = {2, 1, 2, 3, 2, 4, 2, 5}; // 8
        int[] m3 = {3, 3, 1, 1, 2, 2, 4, 4, 5, 5}; // 10

        Map<Integer, Integer> map = new HashMap<>();
        map.put(1, 0);
        map.put(2, 0);
        map.put(3, 0);

        for(int i = 0; i < answers.length; i++){
            if(m1[i % 5] == answers[i]){
                map.put(1, map.get(1) + 1);
            }
            if(m2[i % 8] == answers[i]){
                map.put(2, map.get(2) + 1);
            }
            if(m3[i % 10] == answers[i]){
                map.put(3, map.get(3) + 1);
            }
        }

        int max = Math.max(map.get(1), Math.max(map.get(2), map.get(3)));

        List<Integer> list = new ArrayList<>();
        for(int i = 1; i < 4; i++){
            if(map.get(i) == max){
                list.add(i);
            }
        }

        int[] answer = new int[list.size()];
        for(int i = 0; i < list.size(); i++){
            answer[i] = list.get(i);
        }
        return answer;
    }
}
  1. 수포자들의 정답이 반복하는 배열이므로 배열로 선언함, 각 수포자들의 반복개수로 나눈 나머지와 비교
  2. answers배열과 수포자들의 정답 배열을 for문을 통해 같은 인덱스에서 정답을 비교
  3. 처음 과정에서 예제2가 오답으로나와 디버깅 시작
  4. 정답일 때 value값을 증가시키는 if문에서 elif를 사용하니 for문 1회가 끝나버림
  5. 각각의 if문을 통해 확인

'Java & Spring > 코딩테스트' 카테고리의 다른 글

10일차 - 알고리즘 코드카타  (0) 2024.07.26
9일차 - 알고리즘 코드카타  (0) 2024.07.25
7일차 - 알고리즘 코드카타  (0) 2024.07.23
6일차 - 알고리즘 코드카타  (1) 2024.07.22
5일차 - 알고리즘 코드카타  (1) 2024.07.19
'Java & Spring/코딩테스트' 카테고리의 다른 글
  • 10일차 - 알고리즘 코드카타
  • 9일차 - 알고리즘 코드카타
  • 7일차 - 알고리즘 코드카타
  • 6일차 - 알고리즘 코드카타
DJ.Kang
DJ.Kang
백엔드 개발 기록 블로그
  • DJ.Kang
    DJ Hello World
    DJ.Kang
  • 전체
    오늘
    어제
    • 분류 전체보기
      • 이론공부
        • 개념
        • 정보처리기사 필기
        • 정보처리기사 실기 기출
        • 네트워크관리사 2급
        • SQLD
      • 시스템설계
      • Java & Spring
        • TIL
        • 트러블슈팅
        • 고도화
        • 알고리즘
        • 코딩테스트
        • Java
        • Spring
        • Thymeleaf
      • 프로젝트
        • coin-trading
        • 트러블슈팅
      • Docker
      • 웹
      • git & github
  • 블로그 메뉴

    • 홈
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    Java this
    java 멤버
    java enhance switch
    java 유클리드 호제법
    Java 생성자
    java 세수의합
    java super
    java기초
    프로그래머스 java 기초 트레이닝
    데이터 타입
    프로그래머스 java 기초트레이닝
    java 메서드
    java 제어자
    java arrays.copyofrnage()
    java 에라토스테네스의 체
    java two-pointer
    java
    개발로드맵
    자료구조
    데이터 크기
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
DJ.Kang
8일차 - 알고리즘 코드카타
상단으로

티스토리툴바