https://programmers.co.kr/learn/courses/30/lessons/12934
1. 내가 푼 방법
코드 풀이:
1줄. solution 함수에 number 를 인자로 받음
3줄. Math.sqrt를 사용하여 숫자에대해 루트값을 계산한다.
4줄. Number.isInteger()를 사용하여 sqrt값이 정수면 true, 정수가 아닌 소수점을 갖는다면 false 를 integer 변수에 저장
5줄. if조건문사용하여 integer가 true 면 제곱근 함수인 Math.pow 사용하여 sqrt보다 1큰 수를 제곱하여 return 해줌
6줄. 그게 아니라면 -1 값을 return 해줌
2. 삼항연산자로 응용
코드 풀이:
위와 같지만 if 문을 생략하고 한줄로 끝내기위해서 삼항연사자를 사용, ? 기준 왼쪽이 참이면 :을 기준 왼쪽 을 반환, false 이면 오른쪽 반환
3. isInteger 대신 %로 나머지값에 따른 삼항 조건 연산자
위와 같지만 sqrt값을 1로 나눠 남은 몫이 0이면 정수이므로 Math.pow 쪽 을 출력, 만약 몫이 0이 아니면 소수점이 있다는 것이니 -1을 출력해준다.
'공부 > 알고리즘&자료구조' 카테고리의 다른 글
항해99 문제14번풀이 (나누어 떨어지는 숫자배열,프로그래머스) (0) | 2021.11.09 |
---|---|
항해99 문제11번풀이 (x만큼 간격이 있는,프로그래머스) (0) | 2021.11.09 |
항해99 문제21번풀이 (이상한 문자 만들기,프로그래머스) (0) | 2021.11.08 |
항해99 문제17번풀이 (문자열다루기 기본,프로그래머스) (0) | 2021.11.08 |
항해99 문제13번풀이 (2016년 5월24일 요일 가져오기,프로그래머스) (0) | 2021.11.08 |