페블_
반짝이는 시냅스
페블_
전체 방문자
오늘
어제
  • 전체글 보기 (96)
    • QA (0)
    • 프로젝트 회고 (4)
    • 프로젝트 과정 기록 (12)
    • UI 구현 연구일지 (8)
    • Front-end (31)
      • Javascript (7)
      • CSS (10)
      • React (5)
      • Typescript (3)
      • Nextjs (3)
      • 스타일링 라이브러리 (3)
    • Back-end (0)
      • Express (0)
      • DB (0)
    • CS (0)
      • 자료구조 & 알고리즘 (0)
    • CI&CD (1)
    • 툴 사용법 (4)
      • Git (1)
      • Library&패키지 (2)
      • 기타 개발관련 (1)
    • 알고리즘 이론 & 풀이 (36)
      • 백준(BOJ) (14)
      • 프로그래머스 (22)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • react
  • chartjs
  • 파이썬
  • 백준
  • UI 컴포넌트
  • TypeScript
  • 선형대수학
  • Python
  • eslint
  • 캐러셀
  • 개발블로그_시작
  • 토이프로젝트
  • 생각
  • JS
  • storybook
  • emotion
  • 알고리즘
  • 시리즈_표지

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
페블_

반짝이는 시냅스

알고리즘 이론 & 풀이/프로그래머스

프로그래머스 Lv.1 | (완전탐색) 모의고사 js

2023. 8. 9. 00:34

문제

https://school.programmers.co.kr/learn/courses/30/lessons/42840?language=javascript 

 

풀이

  • 수포자가 찍는 패턴 - 12345 / 21232425 / 3311224455
  1. answers와 수포자의 답을 비교하기 위해 각 수포자의 답을 문자열로 준비한다.
  2. 크게는 pattern이 answers에 몇 번 들어가는지 몫만큼 반복되고, pattern이 짤려서 붙는 경우를 위해 나머지 개수만큼을 덧붙여준다. (repeat과 substr 사용)
  3. 답이 일치하는 횟수를 세기 위해 [0, 0, 0]으로 초기화한 count 변수를 준비한다.
  4. 수포자의 답을 순회하며 answers와 답을 비교하며 만약 같다면 count[index]에 +1을 해준다.
  5. count 중 max 값을 구하고, count를 돌며 max와 같은 값을 가졌다면 answers에 count의 인덱스 + 1을 push해 몇번 수포자인지 결과 배열에 넣는다.
function solution(answers) {
    let answer = [];
    const count = [0, 0, 0];
    const pattern = ['12345', '21232425', '3311224455'];
    const pick = [];    // 수포자가 찍은 답안들
    pattern.forEach((p) => {
        let repeat = p.repeat(Math.ceil(answers.length / p.length));
        pick.push(repeat + p.substr(0, answers.length % p.length));
    });
    
    pick.forEach((p, index) => {
        for(let i = 0; i < answers.length; i++) {
            if(answers[i] === Number(p[i])){
                count[index] += 1;
            }
        }
    });
    
    let max = Math.max(...count);
    count.forEach((c, index) => {
        if(max === c) answer.push(index + 1);
    });
    return answer;
}

'알고리즘 이론 & 풀이 > 프로그래머스' 카테고리의 다른 글

프로그래머스 Lv.1 | (스택/큐) 같은 숫자는 싫어 js  (0) 2023.08.09
프로그래머스 Lv.2 | (DFS) 타겟 넘버 js  (0) 2023.08.09
프로그래머스 Lv.2 | (완전탐색) 소수찾기 js  (0) 2023.08.08
프로그래머스 Lv.1 | 전화번호 목록 js  (0) 2023.08.08
프로그래머스 Lv.1 | 완주하지 못한 선수 js  (0) 2023.08.08
    '알고리즘 이론 & 풀이/프로그래머스' 카테고리의 다른 글
    • 프로그래머스 Lv.1 | (스택/큐) 같은 숫자는 싫어 js
    • 프로그래머스 Lv.2 | (DFS) 타겟 넘버 js
    • 프로그래머스 Lv.2 | (완전탐색) 소수찾기 js
    • 프로그래머스 Lv.1 | 전화번호 목록 js
    페블_
    페블_

    티스토리툴바