Algorithm/입출력

https://www.acmicpc.net/problem/10818 10818번: 최소, 최대 첫째 줄에 정수의 개수 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 N개의 정수를 공백으로 구분해서 주어진다. 모든 정수는 -1,000,000보다 크거나 같고, 1,000,000보다 작거나 같은 정수이다. www.acmicpc.net 문제 설명 풀이 과정 나의 풀이 ① 문제 바라보기 '어 뭐야? 그냥 버블정렬을 이용하여 오름차순으로 정렬한 뒤 0번째 인덱스 요소와 마지막 인덱스 요소를 뽑으면 끝인데?' 라고 생각했지만 시간초과가 나버렸다... #include int main(void) { int N,k; std::cin >> N; int arr[N]; for (int i = 0; i < N;..
https://www.acmicpc.net/problem/1924 1924번: 2007년 첫째 줄에 빈 칸을 사이에 두고 x(1 ≤ x ≤ 12)와 y(1 ≤ y ≤ 31)이 주어진다. 참고로 2007년에는 1, 3, 5, 7, 8, 10, 12월은 31일까지, 4, 6, 9, 11월은 30일까지, 2월은 28일까지 있다. www.acmicpc.net 문제 설명 풀이 과정 나의 풀이 ① 문제 바라보기 처음에는 time_t 를 이용해야하나 싶었는데.. 알고보니 솔직히 노가다 문제였다..!! ② 아이디어 열기 #include #include int main(void) { int x,y; std::cin >> x >> y; // x월 y일 입력 받기 std::string week[] = {"SUN","MON"..
https://www.acmicpc.net/problem/2741 2741번: N 찍기 자연수 N이 주어졌을 때, 1부터 N까지 한 줄에 하나씩 출력하는 프로그램을 작성하시오. www.acmicpc.net 문제 설명 풀이 과정 굉장히 쉬운 문젠데... std::endl이 "\n"보다 느리다는 것을 깨닫게 해준 고마운 문제이기도 하다. ▶ 둘의 속도에 차이가 나는 이유는 무엇일까??? std::endl은 버퍼를 비우고 "\n"은 버퍼를 비우기 않기때문이라고 한다. 말은 쉽지... 도대체 버퍼가 뭔데..??라고 물을 수도 있기에 버퍼까지 덤으로 조사해보았다!! 버퍼는 임시 메모리 공간이다. 입력이나 출력이 바로 이루어지는게 아니라 버퍼에 담아둘 수 있다. 버퍼를 사용하면 얻을 수 있는 장점은 1. 문자를 한..
https://www.acmicpc.net/problem/11721 11721번: 열 개씩 끊어 출력하기 첫째 줄에 단어가 주어진다. 단어는 알파벳 소문자와 대문자로만 이루어져 있으며, 길이는 100을 넘지 않는다. 길이가 0인 단어는 주어지지 않는다. www.acmicpc.net 문제 설명 풀이 과정 나의 풀이 ① 문제 바라보기 문자열을 입력받아서 10개씩 끊기만 하면 되는 문제였다. 다만 끊는 방법을 몰랐을 뿐...!! ② 아이디어 열기 substr함수를 통해 쉽게 구현할 수 있었다. #include #include int main(void) { std::string str, arr[10000]; std::cin >> str; // 문자열 입력 받기 int str_length = str.length(..
https://www.acmicpc.net/problem/11721 11721번: 열 개씩 끊어 출력하기 첫째 줄에 단어가 주어진다. 단어는 알파벳 소문자와 대문자로만 이루어져 있으며, 길이는 100을 넘지 않는다. 길이가 0인 단어는 주어지지 않는다. www.acmicpc.net 문제 설명 풀이 과정 나의 풀이 ① 문제 바라보기 문자열을 입력받아서 10개씩 끊기만 하면 되는 문제였다. 다만 끊는 방법을 몰랐을 뿐...!! ② 아이디어 열기 substr함수를 통해 쉽게 구현할 수 있었다. #include #include int main(void) { std::string str, arr[10000]; std::cin >> str; // 문자열 입력 받기 int str_length = str.length(..
https://www.acmicpc.net/problem/11720 11720번: 숫자의 합 첫째 줄에 숫자의 개수 N (1 ≤ N ≤ 100)이 주어진다. 둘째 줄에 숫자 N개가 공백없이 주어진다. www.acmicpc.net 문제 설명 풀이 과정 나의 풀이 ① 문제 바라보기 문제를 보자마자 '그냥 입력값을 배열에 저장하여 for문을 통해 배열의 요소를 하나씩 더하면 되겠구나'라는 생각을 했지만.. 예제 3번처럼 25자리의 숫자를 배열에 집어넣을 수 없기에 다른 방법이 필요했다..!! ② 아이디어 열기 입력값을 한번에 배열로 받지 않고 입력값 하나하나를 받으면 쉽게 해결할 수 있었다-!!!! #include // 표준입출력 클래스가 담긴 헤더 파일 int main(void) { int tc, resul..
https://www.acmicpc.net/problem/11718 11718번: 그대로 출력하기 입력이 주어진다. 입력은 최대 100줄로 이루어져 있고, 알파벳 소문자, 대문자, 공백, 숫자로만 이루어져 있다. 각 줄은 100글자를 넘지 않으며, 빈 줄은 주어지지 않는다. 또, 각 줄은 공백으로 시 www.acmicpc.net 문제 설명 풀이 과정 나의 풀이 ① 문제 바라보기 문제 그대로 '입력 받은 대로 출력'하면 된다. C언어였으면 eof가 입력되면 while문을 멈추는 방식으로 작성했을텐데.. C++은 첨이라 getline함수를 처음 사용해보았다. ② 아이디어 열기 string 라이브러리 속에 있는 getline 함수를 사용하여 문자열의 입력이 주어지면 string 객체에 저장한 뒤 출력하기로 하..
태윤이
'Algorithm/입출력' 카테고리의 글 목록