본문 바로가기
Computer Science/PS

[PS] 12월 1주차 복습

by BrickSky 2023. 12. 10.

1) precision 함수


precision() 함수란?
cout.precision(n) 은 실수를 n자리 만큼만 출력하게 한다.

double a = 1234.5678;
std::cout.precision(6);

std::cout < a;

위 예시는 결과적으로* "1234.57" *을 출력한다.

  • 1234.5678 중 6자리 만 출력하고 끝에서 반올림 *한 것이다.

 
문제에서 상대오차의 범위를 지정해주었기 때문에 precision() 함수를 사용하지 않으면 나머지가 무한대로 나오기 때문에 문제가 되는 것이다. 따라서 무한대로 발생하는 나머지의 문제를 막기위해 precision() 함수를 활용하는 것이다.
 

 

[PS] 1008. A/B

1) 문제: 1008. A/B 2) 나의 첫 풀이// // main.cpp // CodingTest // // Created by 김동현 on 2023/12/09. // #include using namespace std; int main() { double a; double b; cin >> a; cin >> b; cout a; cin >> b; cout.precision(10); cout

skydh1214.tistory.com

 
 

2) 개행 문자: endl 과 \n 


C++에서 endl과 개행 문자(\n)은 비슷한 동작을 하지만 약간의 차이가 있다.
endl의 경우 문자를 출력하고 버퍼를 지우지만, 개행 문자(\n)은 문자를 출력하고 버퍼를 지우지 않는다.
 

 

[PS] 22438. 별 찍기 -1

1) 문제: 22438. 별 찍기 -1 2) 나의 첫 풀이// // main.cpp // CodingTest // // Created by 김동현 on 2023/12/09. // #include using namespace std; int main() { int N; cin >> N; for(int i=0; i

skydh1214.tistory.com

 
 

3) 문자열 입력 


문자열을 입력받기 위해 string를 선언해두었다.

 

cin >> s >> number; 코드를 통해 문자열을 입력 받고, 몇 번 인덱스에 접근할 것인지 입력받는다.
출력을 할 때에는 입력받은 문자열에서 인덱스는 0부터 시작하는 것을 고려해 원하는 인덱스에서 1을 뺀 부분의 인덱스에 접근하여 값을 출력한다. 이렇게 하면 끝!

 
참고할 문제

 

[PS] 27866. 문자와 문자열

1) 문제: 27866. 문자와 문자열 2) 나의 첫 풀이 #include using namespace std; int main() { string s; int number; cin >> s >> number; cout s >> number; 코드를 통해 문자열을 입력 받고, 몇 번 인덱스에 접근할 것인지 입력

skydh1214.tistory.com

 
 

4) sort() 함수 


    sort(arr, arr+3);
    for(int i=0; i<3; i++){
        cout << arr[i] << " ";
    }

 

sort(name, num) 으로 name은 해당 배열의 메모리 주소이고, num은 정렬할 마지막 주소가 있는 메모리 주소를 나타낸다.

=> sort(arr, arr+3)

 

위의 코드에서 배열의 메모리 주소는 arr이므로 첫 번째 인자에 arr을 넣어주면 된다.

두 번째 인자에는 배열의 크기를 고려하여 마지막 주소가 있는 메모리 주소를 넣어줘야 한다. 배열의 크기가 3이니까, arr+3을 넣어주면 된다.

 

sort() 함수를 사용하기 위해서는!

헤더 파일에 #include <algorithm>을 반드시 추가해주어야 한다!!

 
 

[PS] 2752. 세수정렬

1) 문제: 2752. 세수정렬 2) 나의 첫 풀이 바킹독 해설 별해를 보니, sort 함수를 활용해 문제를 풀었길래 sort 함수를 활용해 보았다. #include #include using namespace std; int main() { int arr[4]; for(int i=0; i> arr[i]

skydh1214.tistory.com


 

5) max() 함수 


else
        cout << max({a,b,c}) * 100;

 

max() 함수를 활용하면 일일이 비교하지 않아도 가장 큰 값을 구할 수 있다.

위의 코드에서는 max( {  } )의 형태로 활용되어 a, b, c 중 가장 큰 값을 구하고 있다.

 

두 개의 수를 비교할 때에는 위에서 사용한 것과 달리 중괄호 { }를 사용하지 않아도 된다.

단순히 max(1,10)을 작성하면 결과는 10을 준다. 하지만 3개 이상의 수를 비교할 때는 중괄호 { }를 사용하여 비교하면 된다.

 

반대로 작은 값을 얻고자 할 때에는 max()가 아닌, min()을 활용하여 가장 작은 값을 구할 수 있다.

마찬가지로 해당 함수는 #include <algorithm> 알고리즘 헤더 파일에 포함된다.

 

 

[PS] 2480. 주사위 세개

1) 문제: 2480. 주사위 세개 2) 나의 첫 풀이 우선 3개의 숫자를 입력받고, 추후에 경우를 나누어 해당 케이스에서 연산을 하는 방법을 떠올렸다. 3개의 숫자를 입력 받는다. 같은 눈이 3개 나오는 경

skydh1214.tistory.com

 

 

6) cin에서의 공백 문자 관련 주의 사항: cin, getline 


cin에서의 공백 문자 관련 주의 사항 

cout의 경우 공백문자를 처리하지 못한다.

이렇게 hi 까지만 값을 읽어오는 것을 알 수 있는데, 이때 사용할 수 있는 게 getline() 함수이다.

 

하지만! getline를 활용하면 원하는 문자를 공백과 상관없이 전부 가져올 수 있다.

 

'Computer Science > PS' 카테고리의 다른 글

[PS] 2576. 홀수  (0) 2023.12.13
[PS] 2490. 윷놀이  (2) 2023.12.11
[PS] 2480. 주사위 세개  (0) 2023.12.10
[PS] 2752. 세수정렬  (0) 2023.12.10
[PS] 10871. X보다 작은 수  (0) 2023.12.10