코딩 공부 연습(130)
-
DP 문제 풀이 유형
1. 가장 ~~ 한 부분 수열 구하기 유형 2중 for문을 돌면서 조건에 따라 dp 값을 갱신한다. for (int i = 1; i
2023.05.15 -
백준 2075 N번째 큰 수
우선 이 문제는 시간 초과, 메모리 초과 등에 대해서 신경 쓸게 아주 많은 녀석이다. 우선, 기본 배열이나 벡터에 수들을 무작정 넣고 정렬한 후 자 n 번째 출력! 하면 메모리 초과가 나온다. 그래서 머리를 좀 더 굴려서 우선순위 큐에 넣으면서 자동 정렬을 시켜도? 시간초과가 나올 것이다. 이제 우선순위큐의 크기를 n 으로 유지하며 더 들어오면 Pop 을 해보자. 이렇게 하면 돌아가야 하는데 나는 안돌아갔다. ios_base::sync_with_stdio(false); cin.tie(nullptr); 이 녀석들을 적고 해주니 되었다. 이런 것들에서 시간초과를 겪지 말자!! #include #include using namespace std; int main() { ios_base::sync_with_st..
2023.04.15 -
백준 20499 Darius님 한타 안 함?
오랜만에 코테 문제다! 요즘 쉬운거 위주로 풀고 있어서 올릴일이 없었는데, c++ 에선 split을 사용할 수 없다는 불편함을 이번 기회에 해결해 보고자 split 함수를 구현해 보았다. vector split(string input, char delimiter) { vector answer; stringstream ss(input); string temp; while (getline(ss, temp, delimiter)) { answer.push_back(temp); } return answer; } 이 split 을 외우고 다닌다면 쉽게 c++에서도 split 을 이용할 수 있다!!! #include #include #include #include using namespace std; vector s..
2023.04.08 -
프로그래머스 - 숫자 게임
요즘 백준을 낮은 난이도부터 채우면서, 블로그에 남길만한 문제가 별로 없다. 이번에 스터디를 하면서, 프로그래머스 스킬 테스트를 해보게 되었는데, 마침 이번 스터디에서 스킬 테스트에서 이 문제를 풀어보게 되었고, 이문제만 풀고 두번째는 풀지 못하면서 결국 통과하지 못했다..!! 아쉬워라 https://school.programmers.co.kr/learn/courses/30/lessons/12987 문제를 이해해 보자. A 팀에서 어떤 순서로 숫자를 출전시킬지 알고 있는 상황에서 B 팀은 자신들의 숫자를 조합해 가장 많이 이길 수 있는 경우를 찾는 것이 목적이다. a,b 는 10만개 까지 받을 수 있고, 각 값은 1000000000 이하의 자연수이다. 이 문제를 해결하기 위해, 정렬한 후 for 문으로 ..
2023.03.30 -
백준 11718 그대로 출력하기
오늘은 정말 오랜만에 백준을 풀었다. 이거 그런데 굉장히 어렵다. 믿기지 않지만 브론즈 5 인데, 허 c++ 로 풀었음에도 cin 을 이용해 푸는데 실패했다. 우선 내 코드를 보면, #include //using namespace std; int main() { while(1) { char c; if (scanf("%c", &c) == -1) { return 0; } printf("%c", c); } return 0; } 이렇게 풀었는데, scanf , printf 를 사용한 것을 볼 수 있다. scanf의 리턴값이 -1인 경우에 멈춰주어야만했는데, cin에서 이를 구현할 방법을 찾지 못했고, getline 으로 한줄 씩 받아도 풀 수 있는 문제가 아니었다.
2023.03.22 -
백준 2741 N 찍기
백준 2741 N 찍기 이 문제도 쉬웠는데, 예상치 못한 곳에서 한번 틀렸습니다를 받아 기록해 두려고 한다. 초기 제출할 땐 for (let i = 1; i
2023.03.12