본문 바로가기

백준/C++

(135)
[C++] 백준 4999번 - 아! 문제 4999번 https://www.acmicpc.net/problem/4999 4999번: 아! 입력은 두 줄로 이루어져 있다. 첫째 줄은 재환이가 가장 길게 낼 수 있는 "aaah"이다. 둘째 줄은 의사가 듣기를 원하는 "aah"이다. 두 문자열은 모두 a와 h로만 이루어져 있다. a의 개수는 0보다 크거 www.acmicpc.net 이 문제는 재환이가 가장 길게 낼 수 있는 소리가 의사가 듣기를 원하는 소리보다 작으면 no를 출력하고, 아니면 go를 출력하면 되는 문제이다. #include #include using namespace std; int main() { string j, d; cin >> j >> d; if (j.length() < d.length()) { cout
[C++] 백준 2935번 - 소음 문제 2935번 https://www.acmicpc.net/problem/2935 2935번: 소음 수업 시간에 떠드는 두 학생이 있다. 두 학생은 수업에 집중하는 대신에 글로벌 경제 위기에 대해서 토론하고 있었다. 토론이 점점 과열되면서 두 학생은 목소리를 높였고, 결국 선생님은 크게 www.acmicpc.net *일 때, 1을 먼저 출력해준다음 입력된 값들의 길이를 합한 후 앞자리 2씩 빼주어 0의 개수를 알아낸 후 그 길이만큼 0을 출력해준다. +일 때, 입력된 값들의 길이가 같으면 처음에 2를 출력해준다음 나머지 길이만큼 0을 출력해준다. 만약, 입력된 값들의 길이가 다르면 가장 긴 길이부터 시작하여 차례대로 비교하며 각 입력값의 길이와 같을 때 1을 출력해주고 나머지는 0을 출력해준다. #inc..
[C++] 백준 2744번 - 대소문자 바꾸기 문제 2744번 https://www.acmicpc.net/problem/2744 2744번: 대소문자 바꾸기 영어 소문자와 대문자로 이루어진 단어를 입력받은 뒤, 대문자는 소문자로, 소문자는 대문자로 바꾸어 출력하는 프로그램을 작성하시오. www.acmicpc.net 'A'의 아스키코드 값은 65, 'a'의 아스키코드 값은 97이므로 만약 대문자(65이상 90이하)면 32를 더해주고 그 이외의 값이면 32를 빼준다. #include #include using namespace std; //'A'의 아스키코드 값: 65, 'a'의 아스키코드 값: 97 int main() { string input; cin >> input; for (int i = 0; i < input.length(); i++) { if..
[C++] 백준 2902번 - KMP는 왜 KMP일까? 문제 2902번 https://www.acmicpc.net/problem/2902 2902번: KMP는 왜 KMP일까? 입력은 한 줄로 이루어져 있고, 최대 100글자의 영어 알파벳 대문자, 소문자, 그리고 하이픈 ('-', 아스키코드 45)로만 이루어져 있다. 첫 번째 글자는 항상 대문자이다. 그리고, 하이픈 뒤에는 반드 www.acmicpc.net 첫글자는 미리 짧은 형태 이름을 저장할 name 변수에 넣어주고, 인덱스 1부터 입력값의 길이까지 반복하여 '-'이 있다면 그 다음 글자를 name 변수에 추가해줬다. #include #include using namespace std; int main() { string name, input; cin >> input; name += input[0]; fo..
[C++] 백준 1439번 - 뒤집기 문제 1439번 https://www.acmicpc.net/problem/1439 1439번: 뒤집기 다솜이는 0과 1로만 이루어진 문자열 S를 가지고 있다. 다솜이는 이 문자열 S에 있는 모든 숫자를 전부 같게 만들려고 한다. 다솜이가 할 수 있는 행동은 S에서 연속된 하나 이상의 숫자를 잡고 모 www.acmicpc.net 다른 숫자가 연속되면 count해주는 식으로 하면 될 것 같다(같은 숫자가 연속되는 부분이 아니라 다른 숫자가 나오는 부분을 찾아서 count). 여기서 count 해줄 때 0(0으로 시작하면), 1(1로 시작하면) 구분해서 변수를 만들어줄 것이다. 그리고 두 개의 변수 중 최소값을 출력하면 된다. #include #include using namespace std; int mai..
[C++] 백준 1100번 - 하얀 칸 문제 1100번 https://www.acmicpc.net/problem/1100 1100번: 하얀 칸 체스판은 8×8크기이고, 검정 칸과 하얀 칸이 번갈아가면서 색칠되어 있다. 가장 왼쪽 위칸 (0,0)은 하얀색이다. 체스판의 상태가 주어졌을 때, 하얀 칸 위에 말이 몇 개 있는지 출력하는 프로그램 www.acmicpc.net string 변수에 하얀 칸이 있는 부분을 F라고 저장하고 아닌 부분은 0으로 저장했다. 체스판 위에 말이 있으면 F가 입력되므로 총 64칸을 white 변수와 비교하여 같으면(둘 다 F면) count를 증가시켜준다. #include #include using namespace std; int main() { string white = "F0F0F0F00F0F0F0FF0F0F0F..
[C++] 백준 1032번 - 명령 프롬프트 문제 1032번 https://www.acmicpc.net/problem/1032 1032번: 명령 프롬프트 첫째 줄에 파일 이름의 개수 N이 주어진다. 둘째 줄부터 N개의 줄에는 파일 이름이 주어진다. N은 50보다 작거나 같은 자연수이고 파일 이름의 길이는 모두 같고 길이는 최대 50이다. 파일이름은 www.acmicpc.net 일단 결과를 저장할 배열(result)과 비교할 변수(s)를 만들어준다. result에 처음 입력값을 받아서 하나하나 넣어주고 비교할 값은 n-1번(첫번째는 이미 입력받았으니까) 반복해주면 되기 때문에 i의 초기값을 1부터 해준다. 만약 result와 s의 각 자리에 있는 문자가 다르면 해당 인덱스의 result값을 ?로 변경해준다. 그렇게 반복문이 끝나면 최종 출력값을 출력..
[C++] 백준 1259번 - 팰린드롬수 문제 1259번 https://www.acmicpc.net/problem/1259 1259번: 팰린드롬수 입력은 여러 개의 테스트 케이스로 이루어져 있으며, 각 줄마다 1 이상 99999 이하의 정수가 주어진다. 입력의 마지막 줄에는 0이 주어지며, 이 줄은 문제에 포함되지 않는다. www.acmicpc.net 문제를 보니 입력받는 변수말고 입력받은 것을 반대로 저장할 변수를 하나 더 만들어주면 될 것 같다. 입력값을 반대로 저장해주기 위해 string을 이용한다. 그렇게 입력값의 길이만큼 반복하여 인덱스를 알맞게 넣어 반대로 저장할 변수에 더해준다(입력값 길이에서 i를 빼주어 인덱스를 반대부터 해주도록 하고 인덱스니까 1을 한번 더 빼줌). 그렇게 두 변수를 비교하여 같으면 yes를 다르면 no를 출력..