Algorithm/string

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;..
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",..
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..
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..
https://www.acmicpc.net/problem/11720 11720번: 숫자의 합첫째 줄에 숫자의 개수 N (1 ≤ N ≤ 100)이 주어진다. 둘째 줄에 숫자 N개가 공백없이 주어진다.www.acmicpc.net 문제 설명풀이 과정나의 풀이① 문제 바라보기  문제를 보자마자 '그냥 입력값을 배열에 저장하여 for문을 통해 배열의 요소를 하나씩 더하면 되겠구나'라는 생각을 했지만.. 예제 3번처럼 25자리의 숫자를 배열에 집어넣을 수 없기에 다른 방법이 필요했다..!! ② 아이디어 열기   입력값을 한번에 배열로 받지 않고 입력값 하나하나를 받으면 쉽게 해결할 수 있었다-!!!!#include // 표준입출력 클래스가 담긴 헤더 파일int main(void) { int t..
https://www.acmicpc.net/problem/11718 11718번: 그대로 출력하기입력이 주어진다. 입력은 최대 100줄로 이루어져 있고, 알파벳 소문자, 대문자, 공백, 숫자로만 이루어져 있다. 각 줄은 100글자를 넘지 않으며, 빈 줄은 주어지지 않는다. 또, 각 줄은 공백으로 시www.acmicpc.net 문제 설명풀이 과정나의 풀이① 문제 바라보기  문제 그대로 '입력 받은 대로 출력'하면 된다. C언어였으면 eof가 입력되면 while문을 멈추는 방식으로 작성했을텐데.. C++은 첨이라 getline함수를 처음 사용해보았다.  ② 아이디어 열기  string 라이브러리 속에 있는 getline 함수를 사용하여 문자열의 입력이 주어지면 string 객체에 저장한 뒤 출력하기로 하였다..
https://www.acmicpc.net/problem/11656 11656번: 접미사 배열첫째 줄에 문자열 S가 주어진다. S는 알파벳 소문자로만 이루어져 있고, 길이는 1,000보다 작거나 같다.www.acmicpc.net문제 설명  접미사 배열은 문자열 S의 모든 접미사를 사전순으로 정렬해 놓은 배열이다.  baekjoon의 접미사는 baekjoon, aekjoon, ekjoon, kjoon, joon, oon, on, n 으로 총 8가지가 있고, 이를 사전순으로 정렬하면, aekjoon, baekjoon, ekjoon, joon, kjoon, n, on, oon이 된다.  문자열 S가 주어졌을 때, 모든 접미사를 사전순으로 정렬한 다음 출력하는 프로그램을 작성하시오.풀이 과정나의 풀이# 1165..
https://www.acmicpc.net/problem/11652 11652번: 카드준규는 숫자 카드 N장을 가지고 있다. 숫자 카드에는 정수가 하나 적혀있는데, 적혀있는 수는 -262보다 크거나 같고, 262보다 작거나 같다. 준규가 가지고 있는 카드가 주어졌을 때, 가장 많이 가지www.acmicpc.net문제 설명  준규는 숫자 카드 N장을 가지고 있다. 숫자 카드에는 정수가 하나 적혀있는데, 적혀있는 수는 -262보다 크거나 같고, 262보다 작거나 같다.  준규가 가지고 있는 카드가 주어졌을 때, 가장 많이 가지고 있는 정수를 구하는 프로그램을 작성하시오. 만약, 가장 많이 가지고 있는 정수가 여러 가지라면, 작은 것을 출력한다. 풀이 과정① 이 문제에서 직관적으로 파악한 것은 '입력되는 카드..
https://www.acmicpc.net/problem/1946 1946번: 신입 사원첫째 줄에는 테스트 케이스의 개수 T(1 ≤ T ≤ 20)가 주어진다. 각 테스트 케이스의 첫째 줄에 지원자의 숫자 N(1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개 줄에는 각각의 지원자의 서류심사 성www.acmicpc.net문제 설명 언제나 최고만을 지향하는 굴지의 대기업 진영 주식회사가 신규 사원 채용을 실시한다. 인재 선발 시험은 1차 서류심사와 2차 면접시험으로 이루어진다. 최고만을 지향한다는 기업의 이념에 따라 그들은 최고의 인재들만을 사원으로 선발하고 싶어 한다. 그래서 진영 주식회사는, 다른 모든 지원자와 비교했을 때 서류심사 성적과 면접시험 성적 중 적어도 하나가 다른 지원자보다 떨어지지..
태윤이
'Algorithm/string' 카테고리의 글 목록