[백준 | C++] 25314.코딩은 체육과목 입니다._소수점 반올림,문자열 연결

수아·2024년 8월 24일
0

codingtest

목록 보기
7/7

문제

“만약, 입출력이
N바이트 크기의 정수라면 프로그램을 어떻게 구현해야 할까요?”

혜아는 책에 있는 정수 자료형과 관련된 내용을 기억해 냈다. 책에는 long int는 4바이트 정수까지 저장할 수 있는 정수 자료형이고 long long int는 8바이트 정수까지 저장할 수 있는 정수 자료형이라고 적혀 있었다. 혜아는 이런 생각이 들었다. “int 앞에 long을 하나씩 더 붙일 때마다 4바이트씩 저장할 수 있는 공간이 늘어나는 걸까? 분명 long long long int는 12바이트, long long long long int는 16바이트까지 저장할 수 있는 정수 자료형일 거야!” 그렇게 혜아는 당황하는 면접관의 얼굴을 뒤로한 채 칠판에 정수 자료형을 써 내려가기 시작했다.
혜아가
N바이트 정수까지 저장할 수 있다고 생각해서 칠판에 쓴 정수 자료형의 이름은 무엇일까?

입력
첫 번째 줄에는 문제의 정수 N이 주어진다.

정답 코드

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

int main()
{
    double N,ans;
    string l;
    cin>>N;
    ans = ceil(N/4);
    for(int i=0;i<ans;i++){
        l +="long ";
    }
    cout<< l <<"int";
    return 0;
}

시행 착오

에.. 이번 문제는 사실 필요한 개념들을 몇 개 검색해서 작성하니 통과되었다!
그럼 내가 이번에 새로 검색한 개념은,,?

소수점 올림

반복되는 long의 개수가 N을 4로 나눈 몫의 올림이다!
그니까 에.,, 5바이트면 long long int가 되어야 하는!
분명 전에 반올림 시켜주는 함수가 있었던 것 같아서 찾아보니!

ceil() 이 있었다. 이는 cmath에 포함되어 있으므로 위에 #include cmath 해주기

  • 참고로 내림은 floor()

문자열 연결

이건 분명히 내가 저번학기에 들었는데,,,+=로 연결하는거 배웠는데 안돼서 왜이래?하고 찾아봤더니

"string"에 포함되어있으니 기억해두자!

profile
이제 갓 태어난 공순

0개의 댓글

관련 채용 정보