프로그래머스 - 모의고사 [JS]

2022. 12. 30. 22:03·알고리즘(Algorithm)
728x90
반응형

핵심

제출 시 5번 이후로 거의 다 실패가 나온다면 그건 answers의 길이와 각 수포자가 찍는 방식의 대한 길이를 고려하지 X

단순하게 아래처럼 코드를 만들었다고 가정해보자

  answers.forEach((i,idx)=>{
    if(i===ex1[idx]){
      ans.push(1)
    }
    if(i===ex2[idx]){
      ans.push(2)
    }
    if(i===ex3[idx]){
      ans.push(3)
    }
  })

만약 answers가 [1,2,3,4,5,2,2,2,3,4,2,5,1,2,5,5,3] 이런식으로 되어있다면 idx값은 계속해서 증가한다.

그래서 ex1[10] ← undefined 라는 결과가 나오기에 인덱스 자체를 각 수포자가 찍는 방식의 길이로 나눠서 해결하면 되는 문제였다.

  answers.forEach((i,idx)=>{
    if(i===ex1[idx%ex1.length]) ans[0]+=1
    if(i===ex2[idx%ex2.length]) ans[1]+=1
    if(i===ex3[idx%ex3.length]) ans[2]+=1
  })
1번 수포자가 찍는 방식: 1, 2, 3, 4, 5, 1, 2, 3, 4, 5, ...
2번 수포자가 찍는 방식: 2, 1, 2, 3, 2, 4, 2, 5, 2, 1, 2, 3, 2, 4, 2, 5, ...
3번 수포자가 찍는 방식: 3, 3, 1, 1, 2, 2, 4, 4, 5, 5, 3, 3, 1, 1, 2, 2, 4, 4, 5, 5, ...
function solution(answers) {
  const ex1=[1,2,3,4,5]
  const ex2=[2,1,2,3,2,4,2,5]
  const ex3=[3,3,1,1,2,2,4,4,5,5]
  let ans=[0,0,0]
  let res=[]
  answers.forEach((i,idx)=>{
    if(i===ex1[idx%ex1.length]) ans[0]+=1
    if(i===ex2[idx%ex2.length]) ans[1]+=1
    if(i===ex3[idx%ex3.length]) ans[2]+=1
  })
  
  for (let i = 0; i < ans.length; i++) {
    if(Math.max(...ans)===ans[i]){
      res.push(i+1)
    }
  }
  return res
}

solution([1,2,3,4,5])

1번 수포자가 찍는 방식: 1, 2, 3, 4, 5, 1, 2, 3, 4, 5, ...
2번 수포자가 찍는 방식: 2, 1, 2, 3, 2, 4, 2, 5, 2, 1, 2, 3, 2, 4, 2, 5, ...
3번 수포자가 찍는 방식: 3, 3, 1, 1, 2, 2, 4, 4, 5, 5, 3, 3, 1, 1, 2, 2, 4, 4, 5, 5, ...

728x90
반응형
저작자표시 (새창열림)

'알고리즘(Algorithm)' 카테고리의 다른 글

프로그래머스 - 소수 찾기[JS]  (1) 2023.01.08
프로그래머스 - 숫자 문자열과 영단어 [JS][2021 카카오 인턴]  (0) 2023.01.05
프로그래머스 - 크기가 작은 부분문자열[JS]  (0) 2022.12.23
프로그래머스 - 문자열 나누기[JS]  (1) 2022.12.19
프로그래머스 - 가장 가까운 글자 [JS]  (1) 2022.12.18
'알고리즘(Algorithm)' 카테고리의 다른 글
  • 프로그래머스 - 소수 찾기[JS]
  • 프로그래머스 - 숫자 문자열과 영단어 [JS][2021 카카오 인턴]
  • 프로그래머스 - 크기가 작은 부분문자열[JS]
  • 프로그래머스 - 문자열 나누기[JS]
Hun-bot
Hun-bot
IT를 중심으로 다양한 것
  • Hun-bot
    로봇이 만드는 눈사람
    Hun-bot
  • 전체
    오늘
    어제
    • All Article (128)
      • Programmers (6)
        • TIP (1)
        • SQL (2)
        • LV1 (1)
        • LV2 (2)
        • LV3 (0)
      • Baekjoon (31)
        • Bronze (10)
        • Silver (19)
        • Gold (2)
        • Platinum (0)
        • Diamond (0)
      • Leetcode (0)
        • Easy (0)
        • Medium (0)
        • Hard (0)
        • SQL (0)
      • 알고리즘(Algorithm) (42)
      • JavaScript (40)
      • Linux (7)
      • JSP (1)
  • 블로그 메뉴

    • 링크

    • 공지사항

    • 인기 글

    • 태그

      Vue #Vue.js #정리
      Python #알고리즘
      Algorithm
      프로그래머스 #자바스크립트 #JS
      백준
      c++
      JS #클래스
      자바스크립트 #연습문제
      JS #JavaScript #프로그래머스 #알고리즘
      async await #js #문법 #자바스크립트 #비동기
      JSP #Vscode #톰켓 #Tomcat #Java #Web #jdk
      JS #프로그래머스 #숫자의표현 #알고리즘
      Javascript
      자바스크립트
      리눅스 #입문
      JS #JavaScript #프로그래머스 #카카오
      Programmers
      알고리즘
      JavaScript #Set #Collection
      SQL
      LeetCode #JS #Javascript #Algorithm
      JS #javascript #객체 #Object
      오블완
      JS #정규표현식
      고득점 Kit
      티스토리챌린지
      프로그래머스
      알고리즘 #Algorithm
      리눅스
      BaekJoon
    • 최근 댓글

    • hELLO· Designed By정상우.v4.10.3
    Hun-bot
    프로그래머스 - 모의고사 [JS]
    상단으로

    티스토리툴바

    티스토리툴바