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",..
Algorithm
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/10808 10808번: 알파벳 개수 단어에 포함되어 있는 a의 개수, b의 개수, …, z의 개수를 공백으로 구분해서 출력한다. www.acmicpc.net 문제 설명 알파벳 소문자로만 이루어진 단어 S가 주어진다. 각 알파벳이 단어에 몇 개가 포함되어 있는지 구하는 프로그램을 작성하시오. 풀이 과정 나의 풀이 (1) 알파벳 리스트에서 직접 count하기 입력값이 무조건 알파벳 소문자로 이루어져있기에 알파벳 리스트에 알파벳 소문자를 모두 저장하고 count 함수를 통해 출력하기로 하였다. # 10808 알파벳 개수 import sys input = sys.stdin.readline text_lst = list(input()) alphabet_ls..
https://www.acmicpc.net/problem/11688 11688번: 최소공배수 찾기 세 정수 a, b, L이 주어졌을 때, LCM(a, b, c) = L을 만족하는 가장 작은 c를 찾는 프로그램을 작성하시오. LCM(a, b, c)는 a, b, c의 최소공배수이다. www.acmicpc.net 문제 설명 세 정수 a, b, L이 주어졌을 때, LCM(a, b, c) = L을 만족하는 가장 작은 c를 찾는 프로그램을 작성하시오. LCM(a, b, c)는 a, b, c의 최소공배수이다. 풀이 과정 나의 풀이 ① 문제 바라보기 LCM(a,b,c) = L 의 과정에서 a,b,L이 주어졌고, 가장 작은 c를 구하는 것이 문제에서 요구하는 것이다. 기본적으로 최소공배수는 유클리드 호제법을 통해 구할 ..