본문 바로가기

Algorithm/Basic

알고리즘 입출력, 손풀기 문제

입출력은 보통 8가지 경우가 있다.

 

boj.kr에서 A+B 문제를 찾아볼수 있다.

 

https://www.acmicpc.net/problem/1000

https://www.acmicpc.net/problem/2558

https://www.acmicpc.net/problem/10950

https://www.acmicpc.net/problem/10951

https://www.acmicpc.net/problem/10952

https://www.acmicpc.net/problem/10953

https://www.acmicpc.net/problem/11021

https://www.acmicpc.net/problem/11022

 

EOF처리

//터미널에서 EOF를 반환 : (Windows)Ctrl + Z, (Linux)Ctrl + D

C : while(scanf("%d %d", &a, &b) ==2)

//scanf의 리턴값은 입력받은 변수의 개수. != 0이 아니라 ==2인 부분 주의.

C++ : while(cin>> a>> b) 또는 if(cin.eof()) break;

Java : while(sc.hasNextInt())

 

한 줄 입력받기

fgets(s, 100, stdin);

//이 경우 \n 까지 입력받으므로 주의. 즉, 문자열의 사이즈가 1개가 더 커진다.

scanf("%[^\n]\n", s);

//[ ]\n : []안에있는부분 까지 입력을 받는다. ^\n : \n을 제외하고 입력을 받는다. 앞뒤공백 무시, 빈줄x

getline(cin, s);

 

숫자하나씩 입력받기

scanf("%1d", &x);

//%d 사이에 수를 넣으면, 그 길이 만큼 입력을 받게됨. 12345>> 1, 2, 3, 4, 5

char ch[255]; scanf("%s", ch); 후에 각문자에서 '0'값 빼기 ex) x = ch[i] - '0'; 

//두자리를 넘어가는 수일 경우 찾기 힘든 에러가 발생 할 수있으니 이런 방법보다는 stoi 등을 사용하는게 바람직하다.

https://jjudrgn.tistory.com/75

 

string 정리

 

jjudrgn.tistory.com

 

 

한문자 입력받기

scanf("%c", &ch);

//이경우 문자 한개를 입력받을수 있다.

 

 

 

scanf("%d", &num);

scanf("%c", &ch);

//위와 같은 경우는 문제가 될수 있다. 정수를 입력받는과정에서 들어가는 '\n'이나 '\0' 또는 ' '이 ch에 저장될수 있기 때문이다.

 

scanf("%d", &num);

getchar();

scanf("%c", &ch);

//getchar()을 이용해 명시적으로 문자를 한개 입력받거나

 

scanf("%d", &num);

scanf(" %c", &ch);

//scanf 포맷 방식을 활용하여 위 문제를 해결할 수 있다.

 

 

기초 연습하기 좋은 문제

N 찍기 : https://www.acmicpc.net/problem/2741 

기찍 N : https://www.acmicpc.net/problem/2742

구구단 : https://www.acmicpc.net/problem/2739

2007년 : https://www.acmicpc.net/problem/1924

Sum : https://www.acmicpc.net/problem/8393

최소, 최대 : https://www.acmicpc.net/problem/10818

 

별찍기 연습문제

2438~2446, 2522, 10991, 10992

 

 

가끔 "를 입력하는 문제에서 실수를 하곤한다.

"를 출력할때는 cout <<"\""; 를 사용하고 \를 출력할때는 cout<<"\\";를 하자!

관련문제 : www.acmicpc.net/problem/10172

 

 

소수점 출력에 대한 내용은 아래 블로그에 정리가 잘되어 있다!

https://psychoria.tistory.com/769

'Algorithm > Basic' 카테고리의 다른 글

다이나믹 프로그래밍[Dynamic Programming]  (0) 2020.12.16
자료구조 : 문자열  (0) 2019.06.06
자료구조 : 덱(deque)  (0) 2019.06.06
자료구조 : 큐(queue)  (0) 2019.06.06
자료구조 : 스택(Stack)  (0) 2019.06.06