알고리즘-직사각형 별찍기,가운데 글자 가져오기

nevermind·2022년 7월 15일
0

알고리즘

목록 보기
2/11
post-thumbnail

1. 직사각형 별찍기

  • split() 메서드: String 객체를 지정한 구분자를 이용하여 여러 개의 문자열로 나눔

  • Output size differs는 타입이 겹쳤을 때? 나오는 것 같음, a.length를 했을때 발생했는데 a= Number(n[0])으로 이미 숫자형이었음 => a.length대신 a로 바꿔주니 오류는 해결

  • 문제 발생

    - ㅎㅎ..for문 안에 담아줄 변수를 선언안해주니 계속 쌓였다. 끊어주기 위해서는 for문 안에 변수 선언

해결방법

- for문의 끝쪽에 console.log를 찍어야 Output size differs가 안나옴..(왜인지는 모르겠음)

3. 가운데 글자 가져오기

  • str.substr(start[, length])메서드 : 시작지점부터 몇번째까지 가져오기( 몇번째부터 가져올까? )
  • Math.ceil() 올림
  • Math.floor() 내림
  • Math.round() 반올림
  • 짝수면 가운데 2개의 글자, 홀수면 가운데 1개의 글자가져와야함

해결방법

순서
1.s의 길이를 파악한다 
2.s가 짝수면? 양쪽에서 일정한 짝수의 잘라내서 가운데를 빼온다, 
홀수면 일정한 홀수의 숫자만큼 잘라내서 가운데를 빼온다

6. 없는 숫자 더하기

  • includes() 메서드 : 주어진 요소가 배열에 있는지 여부를 확인, Bool값으로 반환(true, false)

  • 해결방법

7. 음양 더하기

  • reduce()메서드 : 배열의 각 요소에 대해 하나의 결과값을 반환
    - for문처럼 돌릴 함수 arr뒤에 reduce((acc,cur,idx)=> {return acc += cur+},0)
    acc의 초기값은 0 , acc에 cur를 담음
    • callback : 배열의 각 요소에 대해 실행할 함수. 다음 네 가지 인수를 가짐
    • accumulator : 누산기. 콜백의 반환값을 누적. 콜백의 이전 반환값 또는, 콜백의 첫 번째 호출이면서 initialValue를 제공한 경우에는 initialValue의 값임
    • currentValue : 처리할 현재 요소
    • currentIndex (Optional) : 처리할 현재 요소의 인덱스. initialValue를 제공한 경우 0, 아니면 1부터 시작
    • array (Optional) : reduce()를 호출한 배열

  • 나의 해결방법

    - '-'를 줌으로 음수를 만듦
    - arr에 다 푸쉬해줘서 reduce로 합침
  • 다른 해결법( 출처: 프로그래머스 )
profile
winwin

0개의 댓글