https://programmers.co.kr/learn/courses/30/lessons/12922
내가 푼식:
접근법
먼저 배열의 속성이 무엇일까 생각했다. 수박 이라는 단어를 각각 하나로 쪼개서 더해야할지, 수박을 한단어로 만들고 마지막뒤를 더하거나 빼는걸 생각하고 접근했다. 처음엔 for문을 통해 수박 이라는 단어를 반복하되 2로 나누고 남은 값이 0이 아니면 홀수이므로 그땐 따로 '수'라는 단어를 합칠려고 생각했지만 그렇게 되면 n 이 때는 '수박' 이라는 단어를 쓰는 짝수 변수가 없으므로 에러가 뜰거 같아 그 방법을 접고 n이 1이 더래도 할수있는 방법을 생각하다 '수박' 이라는 단어에서 slice를 이용하여 홀수일때만 마지막 뒤 한글자를 자르기로했다.
이때 for문을 생략하기위해 repeat 함수를 썼는데, n만큼 반복하게되면 '수박'이라는 단어가 원하는 값보다 2배많이 나오기때문에 2로 나눈값을 repeat하리고 생각하였다. 하지만 홀수 같은경우는 나누고나면 정수가 아닌 소수점을 가진 실수형이기때문에 이때는 반올림해주고 slice 로 잘라버리기로 결정했다.
코드 풀이
2줄. 반복할 문자열 '수박'을 담은 변수 a 를 선언 및 초기화
3줄~6줄. 함수의 인자로 들어오는 n 값이 짝수일때만 a를 repeat 하고 그 값을 melon 변수에 담기로함. 이때 n/2는 repeat을 원하는 수만큼 반복하기위해 나눠준것.
8줄. 만약 홀수면 a를 똑같이 반복해주는데 이때 홀수는 2로 나누면 소수점이 생기기때문에 반올림을 위해 Math.round 를 썼다. 반올림으로 반복이 한번더 되므로 마지막 뒷문자를 자르기위해 slice 를 사용. 인덱스0부터 시작하여 n만큼만 출력
'공부 > 알고리즘&자료구조' 카테고리의 다른 글
항해99 문제20번풀이 (완주하지 못한 선수,프로그래머스) (0) | 2021.11.10 |
---|---|
항해99 문제18번풀이 (서울에서 김서방 찾기,프로그래머스) (0) | 2021.11.10 |
항해99 문제29번풀이 (3진법 뒤집기,프로그래머스) (0) | 2021.11.09 |
항해99 문제15번풀이 (내적,프로그래머스) (0) | 2021.11.09 |
항해99 문제14번풀이 (나누어 떨어지는 숫자배열,프로그래머스) (0) | 2021.11.09 |