Skip to content

Latest commit

 

History

History
74 lines (56 loc) · 1.8 KB

TIL-220109.md

File metadata and controls

74 lines (56 loc) · 1.8 KB

프로그래머스 문제

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

function solution(progresses, speeds) {
  let result = []
  
  while (speeds.length>0) {
      for (let i = 0; i < speeds.length; i++) {
          if (progresses[i] < 100) {
              progresses[i] = progresses[i] + speeds[i]
          }
      }
       
      let count = 0        
            
      while (progresses[0] >= 100) {
            progresses.shift()
            speeds.shift()
            count++               
          } 
        
          
      if(count > 0) {
          result.push(count)
      }         
  } 
   
    return result
      
}

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

function solution(answers) {
// 예시 answers = [1,2,3,4,5]
// 나머지를 이용해 배열이 반복되는것처럼 보이게 할 수 있다.    
// 내가 생각한 count++이렇게 하는것보다 배열을 할당한 변수를 만들어서 카운팅을 한다. 
// 최댓값구해줄때 포문으로 구하지말고 Math.max()메소드 사용하자    
 let first = [1,2,3,4,5]
 let second = [2,1,2,3,2,4,2,5]
 let third = [3,3,1,1,2,2,4,4,5,5]
 
 let result = [0,0,0]
    
    for(let i = 0; i < answers.length; i++) {
        if(first[i % 5] === answers[i]) result[0]++
        if(second[i % 8] === answers[i]) result[1]++
        if(third[i % 10] === answers[i]) result[2]++
    }
    
    
    // let max = 0
    // for(let i = 0; i < result.length; i++) {
    //     if(max < result[i]) {
    //         max = result[i]
    //     }
    // }
    
    let max = Math.max(...result) //[2,1,3]
    
    let answer = []
    for(let i = 0; i < 3; i++) {
        if(max === result[i]) {
          answer.push(i+1)
        }
    }
    return answer
}