[TIL] 항해99 8기 6일차

lezsuuu·2022년 7월 16일
0

TIL

목록 보기
6/42

아니 아직도 일주일이 안됐다니...? 하루가 길어져서 그런가보다 열공💯

프로그래머스 코딩테스트 연습 Level1

두 정수 사이의 합

function sol1(a, b) {
  let answer = 0
  if ( a <= b ) {
    for(let i = a; i <= b; i++){
      answer += i
    }
  } else {
    for(let i = b; i <= a; i++){
      answer += i
  }}
  return answer;
}

두 정수 값의 크기에 따라서 분류
a = b => a
a < b / a > b

감 잡는데 꽤 걸렸다.
앞으로는 더 잘게 쪼개서 생각해야지

문자열을 정수로 바꾸기

function sol2(s) {
  return parseInt(s)
}

그저 짧아서 행복😚

없는 숫자 더하기

function sol3(numbers) {
  return 45 - numbers.reduce((acc, cur) => acc + cur)
}

for문으로 돌려서 [i]구하기
정수 n 은 i가 아니다
아닌 값들을 더하기
(!) 0~9까지 합쳐서 numbers의 합을 빼자

반복문 러버라서 무족권 돌려버리는데,
곰곰히 생각하니 어려울게 없는 문제라 5분컷...!
+reduce 를 겸사겸사 공부할 수 있어서 만족스러운 풀이

음양더하기

function sol4(absolutes, signs) {
  let answer = 0;
  for (let i = 0; i < absolutes.length; i++) {
      if (signs[i] === true) {
          answer = answer + absolutes[i];
      } else {
          answer = answer - absolutes[i];
      }
  }
  return answer
} 

개수가 같다 = [i]번째가 같다
signs의 [i]가 ~ 면 absolutes의 [i]는 음/양
signs의 [i] 가 ~면 abs 에 ~ 붙이기?

풀이에 실패한 문제 T^T
막상 높은 난이도가 아닌데
조건문에 대한 이해도가 부족했다

평균 구하기

function solution1(arr){
    let sum = 0;
    for(let i=0; i < arr.length; i++) {
        sum += arr[i]
    }
    return sum/arr.length
}
console.log(solution1([2,2,8]))

0부터 list[i]번째 순차대로 더하기
배열의합계/배열의개수

간단해보이는데 연산자 + 반복문은 왜 항상 어려운지...

// 다른 풀이도 보자
//
function solution2(arr) {
    return arr.reduce((acc, curr) => acc + curr) / arr.length;
  } 
  console.log(solution2([2,2,8]))
//
// 연산자만 다르게 적기
function solution3(arr) {
    return arr.reduce((acc, cur) => acc + cur) / arr.length;
  } 
console.log(solution3([2,2,8]))

이게 으른의 코딩인가... 배열은 reduce 활용해보기!

핸드폰 번호 가리기

function solution4(phone_number) {
    let answer = '*'.repeat(phone_number.length - 4) + phone_number.slice(-4)
    return answer
}
console.log(solution4('00001230'))

(전체 개수 - 4) + '뒤에서 4자리'까지 자르기
so간단하게 해결... 할 수 있었는데
문제를 제대로 안읽어서 ㅎㅎㅎ 인풋을 숫자로 했더니 절대 안되길래
한참을 뒤져봤는데 알고보니 처음부터 텍스트로 들어가더라...ㅎㅎㅎㅎ
그덕에 나중에 오류 덜 내게 됐다...!ㅎㅎㅎㅎ
눈물 흘리며 적어놓은 주석

  • (num).length => undefined
  • (num).toString => 0은 X
  • 글은 끝까지 꼼꼼히 읽기..ㅎㅎ
// 다른 풀이도 보자
//
function hide_numbers(s) {
  return s.replace(/\d(?=\d{4})/g, "*");
}//       replace / 정규표현식 / 대체문자열
//               /숫자(마지막 숫자 4개)/매칭되는걸 다 찾아서 '*'

정규표현식 뭔소린교...TT
한글자 한글자 대조해서 대략적으로 해석만 가넝해따..
겅부하자!!


참고자료

profile
돌고 돌아 벨로그

0개의 댓글