문제설명
주어지는 숫자가 제곱수 라면 1을 반환 아니라면 2를 반환 하라
제한사항
입출력 예
말로하는 순서도
solution int형 함수 선언 및 매개변수 주어진 정수가 담길 int형 변수 n선언
answer이라는 계산값 및 최종 반환값을 저장할 변수 선언 0으로 초기화
i라는 sqrt 반환값 저장변수 선언 및 sqrt를 통한 n의 제곱수를 담음
answer에 i곱하기i의 값이 n과 동일하다면 1을 담음 아니라면 2를 담음
최종반환
소스코드
#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
#include <math.h>
int solution(int n) {
int answer = 0;
int i = sqrt(n);
answer= i*i==n?1:2;
return answer;
}
풀이
제곱수는 주어지는 숫자의 루트를 씌워 구할수 있다
sqrt는 주어지는 숫자의 루트를 씌워 연산 값을 반환해주는 기본함수이다
제곱근이 맞음을 증명하려면 제곱수로 계산한 숫자끼리 곱한다면 해당 숫자가 나오는지 봐야한다
삼항 연산자를 통해 1또는 2를 반환 하였다 하지만 if else문으로도 구현 가능하다
출처: 프로그래머스 코딩테스트연습 입문문제, https://school.programmers.co.kr/learn/courses/30/lessons/120909
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
728x90