C++ 476

백준 10173번 니모를 찾아서 C++

리뷰tolwer을 처음 사용해 보았다. 문제 풀이항상 true인 상태로 while 루프를 실행시켜 준다.줄 전체를 받아와 줘야 하므로 getline을 통해 문자열을 입력 받아 준다.만약 받아온 문자열이 EOI라면 while루프를 빠져나와 준다.문자열의 길이를 받아와 주고 모든 문자열의 문자를 소문자로 변경해 준다.만약 nemo가 문자열에 존재한다면 Found, 아니라면 Missing을 출력해 준다. 참고 사항대소문자를 구분하지 않기 때문에 모두 소문자로 바꿔주었다.  정답 코드#include #include #include using namespace std;int main() { while (1) { string s; getline(cin, s); if (s == "EOI") break; int..

백준 2857번 FBI C++

리뷰문자열 find를 통한 문제 풀이 문제 풀이빈 문자열 ans를 초기화 해준다.5번에 걸쳐 agent의 이름을 받아주고 해당 문자열에 FBI가 포함되어 있다면 해당 인덱스를 ans에 추가해 준다.문자열 ans가 비었다면 HE GOT AWAY! 를 출력해 주고 아니라면 ans를 출력해 준다. 참고 사항없음  정답 코드#include #include #include using namespace std;int main() { string ans = ""; for (int i = 0; i > agent; if (agent.find("FBI") != agent.npos) ans += to_string(i + 1) + " "; } if (ans == "") cout

백준 10820번 문자열 분석 C++

리뷰N의 개수가 주어지지 않았다... 불친절한 문제 문제 풀이true 조건으로 while문을 개행해 주고 각 케이스 마다 문자열을 받아 주고 만약 문자열이 비었다면 break 해준다.문자열의 각 문자를 참조하여 각각의 케이스마다 소문자, 대문자, 숫자, 공백의 숫자를 올려준다.소문자, 대문자, 숫자, 공백의 순으로 개수를 출력해 준다. 참고 사항혹시 모를 오류를 대비해 try-catch문으로 오류 발생 시 while루프를 break 해주었다.black, 숫자, 대문자, 소문자 순으로 if문을 구성하면 더 편하다. 정답 코드#include #include using namespace std;int main() { while (1) { try { string s; getline(cin, s); ..

백준 11656번 접미사 배열 C++

리뷰sort를 통해 문제를 풀었다. 문제 풀이문자열을 변수 s에 입력받아 주고 빈 문자열 리스트 lst를 초기화 해준다.문자열 s의 길이만큼 for문을 개행해 주고, 빈 문자열 temp를 초기화 해준다.i부터 문자열s의 길이만큼 for문을 하나 더 개행해 주고, 각 인덱스의 문자를 temp에 저장해 준다.완성된 temp를 문자열 벡터 lst에 추가해 준다.for문이 모두 종료된 후에 문자열 벡터 lst를 오름차순으로 정렬해 준다.벡터 lst의 각 요소를 출력해 준다. 참고 사항없음 정답 코드#include #include #include using namespace std;int main() { string s; cin >> s; vector lst; for (int i = 0; i

백준 2948번 2009년 C++

리뷰  문제 풀이각 월의 일 수를 나타낼 정수형 벡터를 초기화 해준다.각 요일을 나타낼 문자열 벡터를 초기화 해준다.sum 변수를 0으로 초기화 해주고, 이전 월들의 일 수를 더해준 후 현재 월의 일 수를 더해준다.요일 벡터에 sum을 7로 나눈 나머지의 인덱스의 문자열을 출력해 주면 된다. 참고 사항2009년의 1월 1일은 목요일 이므로 0번 인덱스는 수요일로 설정해 준다.2009년은 윤년이 아니므로 2월은 28일로 나타내 주면 된다. 정답 코드#include #include #include using namespace std;int main() { int d, m; cin >> d >> m; vector months = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30,..

백준 11655번 ROT13 C++

리뷰문자열의 각 문자의 아스키코드를 13씩 밀어 출력하는 문제 문제 풀이문자열을 받아주고 정답을 출력할 문자열을 빈 문자열로 초기화 해준다.아스키 코드가 65 ~ 77, 97 ~ 109라면 13을 더해주고 78 ~ 90, 110 ~ 122 라면 13을 빼준후 정답 문자열에 더해준다.만약 그 외의 아스키 코드라면 그대로 정답 문자열에 더해주면 된다. for문이 종료된 후 정답 문자열을 출력해 준다. 참고 사항없음  정답 코드#include #include #include using namespace std;int main() { string s, ans = ""; getline(cin, s); for (int i = 0; i

백준 11170번 0의 개수 C++

리뷰count 함수를 통한 문제 풀이 문제 풀이정수 a, b를 입력 받고 a부터 b까지 for문을 개행해 준다.해당 숫자를 문자열 형식으로 바꿔 주고 문자열의 처음부터 끝까지 문자 0의 개수를 새서 더해준다.각 케이스 마다 0의 총 개수를 출력해 준다. 참고 사항파이썬의 경우 문자열을 문자 리스트로 받은 후 count 함수를 사용해 주면 될 것 같다.  정답 코드#include #include #include using namespace std;int main() { int t; cin >> t; while (t--) { int a, b; cin >> a >> b; int cnt = 0; for (int i = a; i

백준 5218번 알파벳 거리 C++

리뷰문자열을 입력 받고 각 문자끼리 비교 후 거리를 출력하는 문제 문제 풀이문자열을 a, b를 입력 받고 b의 문자가 a보다 크거나 같을 경우 b - a, 아닐 경우 b + 26 - a를 해주면 된다.각 케이스 마다 정답을 출력 형식에 맞게 출력 참고 사항뒷 문자열에서 앞 문자열을 기준으로 비교해 주어야 한다.C++에서 문자열 연산이 아스키코드를 반환해서 파이썬 보단 편한 것 같다. 정답 코드#include #include using namespace std;int main() { int n; cin >> n; while (n--) { string a, b; cin >> a >> b; string ans = "Distances:"; for (int i = 0; i = a[i]) ans += " "..

백준 10821번 정수의 개수 C++

리뷰getline을 통해 문제를 풀었다. 문제 풀이문자열을 a를 입력 받고 a를 stringstream 형식 ss으로 초기화 해준다.while문을 통해 , 를 기준으로 문자열을 분리하고 분리에 성공했다면 cnt를 증가 시켜준다.while 루프가 종료된 후 cnt를 출력해 주면 된다. 참고 사항없음  정답 코드#include #include #include using namespace std;int main() { string a, temp; cin >> a; stringstream ss(a); int cnt = 0; while (getline(ss, temp, ',')) cnt++; cout

백준 4458번 첫 글자를 대문자로 C++

리뷰ignore 및 getline의 활용법을 알게 되었다. 특히 문자열 인덱싱을 통해 값을 변경할 수 있는 점이 파이썬에 비해 좋다. 문제 풀이n값을 받아준 뒤 n의 수 만큼 for문을 개행시켜 준다.라인 전체를 문자열 a로 받아준 후 a의 첫번째 인자가 소문자라면 대문자로 바꿔준 후 a 전체를 출력해 준다. 참고 사항정수 c를 입력받은 후 개행문자가 남겨져 있기 때문에 getline을 하게되면 첫번째 문자는 빈 문자열을 받게 된다. cin.ignore() 을 통해 개행 문자를 무시해 준다.  정답 코드#include #include using namespace std;int main() { int n; cin >> n; cin.ignore(); for (int i = 0; i = 97) a[0] += ..

728x90