백준

6539 만취한 상범

불타는강정 2019. 10. 9. 13:13

문제 보고 미쳤다 싶었다. 상범아.. 

내용이 그렇지만 문제는 풀만했다. 

저 1, 2, 3은 생각의 흐름.. ㅎㅎ 

조금 신경쓰이는건 저렇게 sqrt 사용해도 되나?? (실수라서) 그것 말고는 스무-스하게 풀었다. 

 

#include <iostream>
#include <cmath>

using namespace std;

int main() {
    int t;
    double n;
    scanf("%d", &t);
    
    for(int i = 0; i < t; i++){
        scanf("%lf", &n);
        printf("%d\n", (int)sqrt(n));
    }
}

간단한 코드

 


+) sqrt를 쓸 때 10^15까지의 숫자는 문제없이 제곱근의 정수 값을 받을 수 있다고 한다(double을 쓸 때)

 

 

#include <iostream>
#include <cmath>
using namespace std;

int main() {
    int t;
    scanf("%d", &t);
    
    for(int i = 0; i < t; i++){
        double n;
        scanf("%lf", &n);
        printf("%d\n", (int)sqrt(n));
    }
}

 

이전에는 C언어 영향으로 double을 밖에 선언했는데 변수는 사용되는 범위 안에 생성해주는 게 좋다고 한다. 보면 double n은 for 문 안에만 사용되기 때문에 안에 선언해주는 것이 좋다.