1. 문제 상세 https://www.acmicpc.net/problem/11718 2. 문제 접근 문자열을 입력받아 저장하고, 그 문자열을 그대로 출력하면 된다. 다만 입력받을 때 공백을 같이 입력받아야 하기 때문에 getline 으로 입력받자.문자열을 입력받은대로 출력하고, 최대 100줄까지 입력을 받아야 하니 반복문을 사용하자. 3. 문제 풀이 #include using namespace std; int main() { string s; while(1) { getline(cin, s); if(s == "") break; cout
백준 - 단계별로 풀어보기/문자열
1. 문제 상세 https://www.acmicpc.net/problem/5622 2. 문제 접근 문제에서 결국 숫자를 시간으로 보면 3, 4, 5 ... 10 까지의 숫자를 사용한다. ABC는 3, DEF는 4, ... WXYZ는 10과 같이 매칭해야 한다. 이를 위해 아래와 같이 정수 배열을 생성해 각 알파벳에 맞도록 시간을 총 26개 저장한다. int sec[26] = { 3, 3, 3, 4, 4, 4, 5, 5, 5, 6, 6, 6, 7, 7, 7, 8, 8, 8, 8, 9, 9, 9, 10, 10, 10, 10 }; 그리고 문자열을 입력받고 각 알파벳을 아스키코드 값을 활용하여 정수 배열의 인덱스와 매치시키자. A 를 입력받을 경우, A 아스키 코드값 65 에서 65를 빼 0으로 계산하여 정수 ..
1. 문제 상세 https://www.acmicpc.net/problem/2908 2. 문제 접근 정수 두 개를 문자열로 입력받아 문자열을 뒤집고, 문자열을 정수로 바꾼 후 값을 비교한다. 문자열을 뒤집기 위해 algorithm 라이브러리에 포함된 reverse() 함수를 사용하자 reverse 함수사용법은 reverse(시작 반복자, 종료 반복자) 이다. (반복자 = 인덱스) 문자열을 모두 뒤집을 때 시작 인덱스와 종료 인덱스를 구하기 위해 문자열의 멤버함수 begin() 과 end() 를 사용한다. begin() 함수는 문자열의 첫 번째 인덱스를 반환. end() 함수는 문자열의 마지막 인덱스를 반환한다. 위와 같은 함수들로 문자열을 뒤집은 후 문자열을 정수로 바꾼다. 이를 위해 stoi() 함수를 ..
1. 문제 상세 https://www.acmicpc.net/problem/1152 2. 문제 접근 공백을 포함한 문자열을 입력받고 문자열에 단어가 몇 개 있는지 확인하자. 단어 사이의 공백은 하나이다. 공백을 포함하여 문자열을 입력받기 위해서는 기존의 cin 대신 getline 을 사용한다. getline(cin, 문자열) 형식으로 문자열에 공백을 포함한 문자열을 입력받아 저장한다. 문자열에서 단어의 갯수는 단어 사이의 공백 개수 + 1개가 된다. 단어가 하나인 경우(공백 X)나 위에서 말한 것 처럼 단어 갯수가 단어 사이 공백 갯수 + 1개 이므로 단어 갯수를 카운트 할 변수의 기본값을 1로 초기화하자. 조건에서 맨 앞이나 맨 뒤에 공백이 포함 될 수 있다고 했으니, 문자열의 공백 개수를 체크하고 맨 ..
1. 문제 상세 https://www.acmicpc.net/problem/2675 2. 문제 접근 테스트의 횟수를 입력받고 그 횟수만큼 정수와 문자열을 입력받는다. 입력받은 정수만큼 문자열의 문자들을 반복하여 출력하는 것이 문제이다. 먼저 테스트 횟수를 입력받아 반복문으로 그 수만큼 반복하도록 한다. 카운터변수는 i. 반복문 안에서는 정수와 문자열을 입력받는다. 그리고 다시 반복문으로 문자열의 크기만큼 반복하도록 한다. 카운터 변수 j. 이 반복문 안에서는 또 다시 반복문으로 입력받은 정수만큼 반복하도록 한다. 카운터 변수 k 반복문 안에서 cout 으로 문자열 s의 j 번 인덱스의 값을 출력한다. 첫 번째 반복문은 테스트의 횟수 루프, 두 번째 반복문은 문자열의 크기만큼 반복, 즉 각 문자에 접근하기 ..
1. 문제 상세 https://www.acmicpc.net/problem/10809 2. 문제 접근 알파벳 소문자로 이루어진 단어를 입력받고, 알파벳(a, b, c, d, e, ... z)들이단어의 몇 번째 자리에 있는지 확인하여 위치를 출력한다. 알파벳이 단어에 없는 경우 -1 을 출력하자. 크기가 26인 정수 배열을 하나 만들고, 인덱스를 알파벳과 매치해보자. (0 = a, 1 = b, 2 = c, ... 25 = z) 반복문을 사용하여 문자열의 크기만큼 반복하도록 한다. 반복에서는 문자열 맨 앞에서 부터 문자를 가져와 확인하자. 이 때, 문자를 가져와 확인하기 때문에 아스키 코드를 활용해보자. 아스키 코드에서 알파벳 소문자는 a 부터 순서대로 97~122 까지이다. 따라서 문자열에서 문자를 가져와 ..