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 까지이다. 따라서 문자열에서 문자를 가져와 ..
1. 문제 상세 https://www.acmicpc.net/problem/11720 2. 문제 접근 숫자를 지정한 갯수 만큼 입력받아 그 수들의 합을 구하는 문제이다. 단계가 문자열 파트인 만큼, 문자열을 사용하여 문제를 해결해보자. 먼저 입력받을 정수의 개수 n 과 n개의 정수들을 문자열로 입력받는다. 반복문을 n 번 반복하도록 한다. 반복문으로 문자열의 0 번 인덱스 값(문자열의 첫 번째 문자, 즉 첫 번째 정수)부터 n-1번 인덱스의 값(마지막 정수)까지 결과를 저장할 변수(sum이라 하자)에 더한다. 이 때, 문자열의 요소에 접근 할 때, 배열과 같이 인덱스를 통해 접근하는 경우 반환값이 문자 형태(char)이다. 따라서 문자->정수 변환을 위해 문자에서 '0' 의 값을 빼준다. 이를 통해 문자 ..
1. 문제 상세 https://www.acmicpc.net/problem/11654 2. 문제 접근 입력받은 문자의 아스키 코드 값을 출력해보자. 먼저 문자열이 아닌 문자를 입력 받을 것이기 때문에 문자를 저장할 변수를 char 형으로 선언하자. 그리고, char을 문자가 아닌 아스키 코드 값, 즉 정수로 출력해야 한다. 이를 위해 char 변수 앞에 (int) 를 붙여 간단하게 정수로 변환이 가능하다. 3. 문제 풀이 #include using namespace std; int main() { char c; cin >> c; cout 아스키 코드 변환 방법을 알아보았다. 문자 변수가 c 라고 할 떄, 변환 방법에는 이 외에 int(c) 나 int a = c - '0' 등의 방법이 있다.
1. 문제 상세 https://www.acmicpc.net/problem/9086 2. 문제 접근 문자열을 지정한 개수만큼 입력받고, 입력받은 문자열들의 맨 앞과 뒤의 문자를 출력한다. for문을 사용하여 지정받은 만큼 반복하도록 하고, 반복문안에서 문자열을 입력받은 후 .front() 함수와 .back() 함수를 사용하여 맨 앞과 뒤의 문자를 구해 출력한다. 3. 문제 풀이 #include using namespace std; int main() { string s; int t; cin >> t; for(int i = 0; i > s; cout