7/15 항해 2주차 7~9번 문제풀이

강인호·2022년 7월 19일
0

알고리즘 문제풀이

목록 보기
3/39

7번문제

문제가 간단해 보이면서도 여러가지의 단계가 필요한데

1 숫자를 쪼개서 숫자 배열에 담는과정

2 뒤집는 과정

2번은 배열에 담은후 reverse함수를 쓰면 뒤집어 지지만 1번은

숫자를 문자열로 변환후 배열에담은후 다시 숫자형으로 변환하는 과정이 필요하다

그래서 일단 n의값을 문자열로 변환후 for문으로 배열에 담은후 배열에 있는 인자들을 하나씩 꺼내서 for문으로 숫자열로 변환해서 빈배열에 다시 담는 방식으로 짜보았다.

최종코드는

8번문제

이것도 문자열로 변환후 내림차순 정렬을 하려고 접근했는데

2번문제에서 오름차순 정렬을 sort함수에 a-b로 하라는 분의 글에 b-a로 바꾸면 내림차순이 된다고 한걸 보고 적용을 해보았고, 내가 실행한 방법은

문자열로 변환->split('')로 쪼개고 reverse로 뒤집은뒤에 그냥 더하면 숫자끼리 더해져버리니

join함수로 자릿수별로 더했다.

최종코드는

9번문제

제곱근문제를 처음 봐서 제곱근 관련해서 검색해보니 제곱근을 구해주는

Math.sqrt(n) 가 나왔다 어떤 수를 넣어도 제곱근이 리턴되길래 어떻게 하면 나누어 떨어지는 수만 골라낼 수 있을까 고민을 했는데 리턴된 값이 정수형이면(소숫점이 없으면) 문제의 기준대로 리턴을 하고 정수형이 아니면 -1을 리턴하게끔 접근해보았다.

정수형이 아닐때 -1리턴, 정수형일때는 나누어 떨어진값에 1을 더해서 두번 곱해주었다.

문제를 다풀고 찾아보니 Math.pow 라는 제곱함수도 따로 있어서

return Math.pow(answer+1,2) 이런식으로 마무리해도 될 것 같다.

0개의 댓글