deo2kim
맞왜틀
deo2kim
전체 방문자
오늘
어제
  • 분류 전체보기
    • CS
      • Algorithm
      • Data Structure
      • Network
      • DB
      • OS
    • Algorithm Problem
      • Python
      • JavaScript
    • Programming language
      • Python
      • JavaScript
    • Tool
      • Jquery
      • React
    • 개발
    • Infra

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

최근 댓글

최근 글

티스토리

반응형
hELLO · Designed By 정상우.
deo2kim
Algorithm Problem/JavaScript

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

[JavaScript] 프로그래머스 - 모의고사
Algorithm Problem/JavaScript

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

2020. 7. 20. 20:58
반응형

문제 해결

1. 학생들의 정답을 찍는 패턴을 배열에 담는다.

2. 학생들이 찍은 정답과 문제의 정답을 차례차례 비교한다.

 (1) 이 때, 학생들의 정답 패턴 길이보다 문제 배열의 길이가 길 경우

 (2) 현재의 인덱스를 정답 패턴 길이로 나누고 나머지를 구한다.

 (3) 학생들의 정답을 맞출 경우 스코어를 +1씩 올려준다.

3. 세 학생의 스코어중 가장 큰 값을 구하고

4. 가장 큰 값과 학생의 점수가 같으면 정답에 푸쉬 해준다.

 

🌤 토스 코딩테스트를 준비하기 위해 오늘부터 자바스크립트로 기본적인 문제를 풀며, 언어를 익히기로 했다!

최근 프론트엔드를 맡아 프로젝트를 진행하며 자바스크립트를 많이 사용해서 크게 어렵지 않았지만, 알고리즘을 푸는것과는 많이 달라서 조금 더 공부해야 할 것 같다.

 

🟢 const vs let

const 는 재선언, 재할당이 모두 불가능하고, let 은 재할당은 가능하다.

let name  = 'deok'
console.log(name) // deok
let name = 'duk'
console.log(name) // Uncaught SyntaxError: Identifier 'name' has already been declared
name = 'dduk'
console.log(name) // dduk

// 재선언은 불가능 하지만, 재할당은 가능하다

const name  = 'deok'
console.log(name) // deok
const name = 'duk'
console.log(name) // Uncaught SyntaxError: Identifier 'name' has already been declared
name = 'dduk'
console.log(name) // Uncaught TypeError: Assignment to constant variable.

// 재선언, 재할당 모두 불가능

🟤 for문

arr = ['tube', 'ryan', 'con']
for(var i=0; i<arr.length; i++) {
	console.log(arr[i])
}

i 는 0 부터, i 가 arr 배열의 길이보다 작을 때 까지, i 를 1씩 증가시킨다. 는 뜻

배열에 인덱스로 접근 하는 방법은 대괄호를 이용한다.

🟡 max함수

const a = 1
const b = 2
const c = 3

var maxNumber = Math.max(a, b, c)
console.log(maxNumber) // 3

var maxNumber = Math.max(5, 6, 6)
console.log(maxNumber) // 6

괄호 안의 숫자 중 가장 큰 값을 반환

 

소스 코드

function solution(answers) {
  var answer = [];
  const student1 = [1,2,3,4,5]
  const student2 = [2,1,2,3,2,4,2,5]
  const student3 = [3,3,1,1,2,2,4,4,5,5]
  
  let student1Score = 0
  let student2Score = 0
  let student3Score = 0
  
  for(var i=0; i<answers.length; i++) {
      var a = i;
      if (i >= student1.length) {
          a = i % student1.length
      } 
      if (student1[a] == answers[i]) {
          student1Score ++
      }
      
      if (i >= student2.length) {
          a = i % student2.length
      } 
      
      if (student2[a] == answers[i]) {
          student2Score ++
      }
      
      if (i >= student3.length) {
          a = i % student3.length
      } 
      
      if (student3[a] == answers[i]) {
          student3Score ++
      }
  }
  const maxScore = Math.max(student1Score, student2Score, student3Score)
  if (student1Score == maxScore) {
      answer.push(1)
  }
  if (student2Score == maxScore) {
      answer.push(2)
  }
  if (student3Score == maxScore) {
      answer.push(3)
  }
  return answer;
}

console.log(solution([1,2,3,4,5]))
console.log(solution([1,3,2,4,2]))
console.log(solution([1,3,2,4,2,3,4]))

 

출처: 프로그래머스

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

 

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

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

programmers.co.kr

문제 설명

수포자는 수학을 포기한 사람의 준말입니다. 수포자 삼인방은 모의고사에 수학 문제를 전부 찍으려 합니다. 수포자는 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, ...

1번 문제부터 마지막 문제까지의 정답이 순서대로 들은 배열 answers가 주어졌을 때, 가장 많은 문제를 맞힌 사람이 누구인지 배열에 담아 return 하도록 solution 함수를 작성해주세요.

제한 조건

  • 시험은 최대 10,000 문제로 구성되어있습니다.
  • 문제의 정답은 1, 2, 3, 4, 5중 하나입니다.
  • 가장 높은 점수를 받은 사람이 여럿일 경우, return하는 값을 오름차순 정렬해주세요.

입출력 예


입출력 예 설명

입출력 예 #1

  • 수포자 1은 모든 문제를 맞혔습니다.
  • 수포자 2는 모든 문제를 틀렸습니다.
  • 수포자 3은 모든 문제를 틀렸습니다.

따라서 가장 문제를 많이 맞힌 사람은 수포자 1입니다.

입출력 예 #2

  • 모든 사람이 2문제씩을 맞췄습니다.
반응형
저작자표시 비영리 변경금지 (새창열림)

'Algorithm Problem > JavaScript' 카테고리의 다른 글

[JavaScript] 프로그래머스 - 기능개발  (0) 2020.07.25
[JavaScript] 프로그래머스 - 체육복  (0) 2020.07.25
[JavaScript] 프로그래머스 - 문자열을 정수로 바꾸기/ 서울에서 김서방찾기/ 같은 숫자는 싫어/ 문자열 내 p와 y의 개수  (0) 2020.07.23
[JavaScript] 프로그래머스 - K번째수  (0) 2020.07.22
[JavaScript] 프로그래머스 - 가운데 글자 가져오기  (0) 2020.07.21
    'Algorithm Problem/JavaScript' 카테고리의 다른 글
    • [JavaScript] 프로그래머스 - 체육복
    • [JavaScript] 프로그래머스 - 문자열을 정수로 바꾸기/ 서울에서 김서방찾기/ 같은 숫자는 싫어/ 문자열 내 p와 y의 개수
    • [JavaScript] 프로그래머스 - K번째수
    • [JavaScript] 프로그래머스 - 가운데 글자 가져오기
    deo2kim
    deo2kim
    코딩 기록하기

    티스토리툴바

    단축키

    내 블로그

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

    블로그 게시글

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

    모든 영역

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

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