반응형

알고리즘 공부/C++ 343

백준 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] += ..

백준 10987번 모음의 개수 C++

리뷰find 함수를 통한 문제 풀이 문제 풀이모음을 찾을 벡터 a를 초기화 해주고 개수를 체크할 정수 cnt 및 문자열 s에 문자열을 입력 받는다.문자열의 길이만큼 for문을 개행한 후 해당 인덱스의 문자가 벡터 a에 존재하는지 체크하고 존재한다면 cnt를 증가cnt를 최종적으로 출력 시켜준다. 참고 사항없음  정답 코드#include #include #include #include using namespace std;int main() { string s; vector a = {'a', 'e', 'i', 'o', 'u'}; int cnt = 0; cin >> s; for (int i = 0; i

백준 11944번 NN C++

리뷰to_string과 substr을 사용한 문제였다. 문제 풀이정답을 저장할 문자열 변수 ans과 정수형 변수 n, m에 각각 입력값을 받아온다.ans에 n을 문자열로 바꾼 값을 n번 더해준다.n의 길이 * n과 m의 값 중 더 작은 값을 구해주고 문자열을 해당 인덱스까지만 출력해 준다. 참고 사항m까지만 출력해도 안되고 문자열 ans를 모두 출력해 줘도 안된다.  정답 코드#include #include #include using namespace std;int main() { string ans = ""; int n, m; cin >> n >> m; for (int i = 0; i

백준 1357번 뒤집힌 덧셈 C++

리뷰reverse와 stoi, to_string메서드를 활용하게 된 문제였다. 이 부분은 파이썬보단 쉽게 로직구현이 가능할 듯 싶다. 문제 풀이문자열 변수 a, b에 입력값을 받아준 후 a, b모두 문자열을 뒤집어 준다.문자열 변수 ans에 a와 b를 정수로 변환한 값을 더해준 후 to_string을 통해 문자열로 변환한 값을 초기화 해준다.ans 문자열을 뒤집고 정수형으로 변환하여 출력해 준다. 참고 사항ans문자열을 뒤집은 후 정수형으로 바꿔서 출력해 줘야 한다. ans 그대로 출력했다가 틀렸다.반례64 46정수형으로 바꾸지 않을 경우 011이 노출된다, 정수형으로 바꾼다면 11이 노출될 것이다.정답 코드#include #include #include using namespace std;int mai..

백준 2902번 KMP는 왜 KMP일까? C++

리뷰stringstream과 getline 메서드를 처음으로 알게 된 문제, 파이썬이라면 split으로 금방 풀 수있겠지만 C++은 너무 불친절한 느낌.. 문제 풀이문자열을 입력 받고 해당 문자열을 stringstream 타입의 변수로 생성해 준다.정답을 출력할 문자열과 임시로 받아올 문자열을 각각 빈 문자열로 초기화 해준다.while 루프를 돌며 -을 기준으로 문자열을 분리하고 각각 문자열의 첫번째 문자만 정답 문자열에 더해준다.while 루프가 종료된 후 정답 문자열을 출력해 준다. 참고 사항getline함수는 통해 문자열이 반환되었을 경우 true, 더이상 반환할 문자열이 없을 경우 false를 리턴한다.  정답 코드#include #include #include using namespace std..

백준 21180번 Reconstruct Sum C++, 파이썬

리뷰파이썬이랑 C++ 시간 차이가 대단하다! 문제 풀이n을 입력 받아주고 n크기의 벡터에 숫자를 입력 받아준다.합을 나타낼 sum을 0으로 초기화 해주고, 정답을 체크할 ans를 100001로 초기화 한다.for문을 돌며 현재 숫자가 전체 벡터합에서 자신을 뺀수와 동일하다면 ans를 최신화 하고 break 해준다.for문이 종료된 후 ans가 그대로 100001이면 BAD를 출력, 아니라면 ans값을 출력해 준다. 참고 사항입력될 수 있는 최대 수가 10^5이므로 ans를 100001로 초기화 해주었다.  정답 코드C++ 코드#include #include using namespace std;int main() { int n; int sum = 0; int ans = 100001; cin >> n; ve..

SWEA 4193번 D4 수영대회 결승전 ( 완전 탐색 + 구현 ) C++, 파이썬

리뷰1BFS를 사용해 문제를 풀었다!문제 풀이테스트 케이스의 개수를 받아와 FOR문을 개행하고 배열의 크기 N을 받아와 N*N크기의 벡터에 값을 채워준다.시작 지점과 도착 지점을 입력받아 시작 지점을 (x, y, 0)의 튜플로 만들어 준다, 4방향 리스트도 전역으로 초기화.bfs의 인자로 만들어둔 튜플과 도착 지점의 x, y좌표를 넘겨준다. 나머지는 전역변수로 활용해준다.받아온 튜플을 큐에 삽입하고 while루프를 실행한다.큐의 제일 앞 데이터를 꺼내 x, y, time으로 초기화 해준다, 만약 목표 지점에 도착했으면 time을 return4방향 리스트를 돌면서 다음 좌표를 갱신한다. 범위를 넘어가지 않을 경우 2가지 경우에 대해 따로 처리해 준다.다음 좌표가 0일 경우 해당 위치를 시간 + 1값으로 할..

백준 28702번 FizzBuzz C++

리뷰문제에 대한 이해가 잘 되지 않아 풀이에 생각보다 시간이 오래 걸렸다. 브론즈 문제 아닌거같은데.. 문제 풀이받아온 문자열을 정수로 변환해 주는 함수 to_int를 작성해 주고 받아온 문자열 세개를 각각 함수를 돌려준다.만약 문자열이 FizzBuzz 라면 -15를 리턴, Fizz라면 -3, Buzz라면 -5를 리턴해 준다.아무것도 해당이 되지 않으면 문자열을 정수형으로 바꾸어 리턴정답 변수를 정수형으로 초기화 하고 만약 첫번째 문자열이 0이상 즉, Fizz나 Buzz나 FizzBuzz가 아닐 경우 3을 더한값을 정답 변수에 할당해 준다, 두번째 문자열일 경우 +2, 세번째 문자열일 경우 +1to_str 함수를 작성하고 정답 변수에 저장된 정수가 15의 배수면 FizzBuzz, 3의 배수면 Fizz, ..

백준 30802번 웰컴 키트 C++

리뷰  문제 풀이셔츠의 총 개수를 변수 n에 입력을 받고 각 사이즈의 셔츠 개수 정보를 벡터에 추가해 준다.이후 티셔츠 묶음과 펜 묶음을 각각 변수 t, p에 받아주고 변수 cnt를 0으로 초기화 해준다.셔츠 개수를 t로 나눈 값을 변수 cnt에 더해준다. (소숫점이 발생할 경우 올림 처리해 준다.)cnt를 출력해 준 후, n을 p로 나눈 몫과 나머지를 각각 출력해 주면 된다.  참고 사항없음  정답 코드#include #include #include #include using namespace std;int main() { int n, a, t, p, i, j; vector shirts; cin >> n; for (i = 0; i > a; shirts.push_back(a); } cin >> t >>..

728x90
반응형