TIL_230411- 해커랭크 Day 1

정윤숙·2023년 4월 11일
0

TIL

목록 보기
147/192
post-thumbnail

📒 오늘의 공부

1. 해커랭크

Day 1. Plus Minus

나의 풀이

  • 배열에서 양수, 음수, 0 개수 구하기
  • 배열의 길이로 나누고 소수점 6자리까지 반올림
  • 값을 각각 출력하기(세로로 출력)
function plusMinus(arr) {
    let positiveCount = 0;
    let negativeCount = 0;
    let zeroCount = 0;
for(let i=0; i<arr.length; i++){
    if(arr[i]>0){
        positiveCount++
    }
    if(arr[i]<0){
        negativeCount++
    }
    if(arr[i] === 0){
        zeroCount++
    }
}
const positiveRatio = (positiveCount/arr.length).toFixed(6);
const negativeRatio = (negativeCount/arr.length).toFixed(6);
const zeroRatio = (zeroCount/arr.length).toFixed(6);


console.log(positiveRatio)
console.log(negativeRatio)
console.log(zeroRatio)
}
  • 양수, 음수, 0 총 세가지만 있기 때문에 값을 각각 출력했다.

알게된 것

toFixed()

const num = 1.23456789;
const roundedNum = num.toFixed(6);
console.log(roundedNum); // "1.234568"
  • 소수점 6자리까지 반올림

배열을 세로로 출력할 때

  • 값을 모두 배열(arr)에 넣고 arr[i]를 출력하기
  • 각 값마다 console.log로 출력하기
    • console.log(arr[1]) console.log(arr[2])

Day 1. Time Conversion

나의 풀이

  • S를 ':'로 split하기
  • PM, AM 구분하기
  • AM일 때 맨 앞자리가 12이라면 12제거하고 return
  • PM일 때 맨 앞자리가 0보다 크고 12보다 작을 때 12를 더하고 return
function timeConversion(s) {
    let convertedTime = 0;
    const splitS = s.split(':');
if(s.includes('AM')){
    if(splitS[0] === '12'){
      convertedTime = '00'+':'+splitS[1]+':'+splitS[2].replace('AM','')
    }
    else{
        return s.replace('AM','')
    }
}
if(s.includes('PM')){
    const turnTo24 = 12+Number(splitS[0])
    if(0<splitS[0]<12){
      convertedTime = turnTo24+':'+splitS[1]+':'+splitS[2].replace('PM','')
    }
    if(splitS[0] === '12'){
       return s.replace('PM','')
    }
}
return convertedTime
}

다시 풀기

  • split 말고 slice로 풀어보기
function timeConversion(s) {
    let convertedTime = 0;
    const frontTime = s.slice(0,2);
if(s.includes('AM')){
    if(frontTime === '12'){
      convertedTime = '00'+s.slice(2,8)
    }
    else{
        return s.slice(0,8)
    }
}
if(s.includes('PM')){
    const turnTo24 = 12+Number(frontTime)
    if(0<frontTime<12){
      convertedTime = turnTo24+s.slice(2,8)
    }
    if(frontTime === '12'){
       return s.slice(0,8)
    }
}
return convertedTime
}
profile
프론트엔드 개발자

0개의 댓글