본문 바로가기
반응형

C++162

[백준/BOJ] 1920번 - 수 찾기 (C++) 문제 링크 코딩하기 전 생각하기 /* unordered_set을 선언한다. n을 입력받고 n만큼 반복한다. 정수를 입력받고 set에 저장한다. m을 입력받고 m만큼 반복한다. 정수를 입력받고 그 수가 set에 있는지 확인한다. set에 있으면 1을 출력하고 없으면 0을 출력한다. */ 코드 #include #include #include using namespace std; int main() { ios::sync_with_stdio(0); cin.tie(0); unordered_set s; int n, m, a; cin >> n; for ( int i = 0; i > a; s.insert(a); } cin >> m; for ( int i = 0; i < m; i++ ) .. 2021. 7. 17.
[백준/BOJ] 2839번 - 설탕 배달 (C++) 문제 링크 코딩하기 전 생각하기 /* n을 입력받는다. n이 0이 될 때 까지 다음을 반복한다. n이 5로는 안나눠지는데 3으로는 나눠지면 3kg봉지를 하나 쓴다. 위의 경우가 아니면 5kg봉지를 하나 쓴다. 위의 경우가 아닌데 n이 5보다 작으면 -1을 출력하고 종료한다. 봉지의 개수를 출력한다. */ 코드 #include #include using namespace std; int main() { int n, count = 0; cin >> n; while ( n > 0 ) { if ( n % 5 != 0 && n % 3 == 0 ) { n -= 3; count++; } else if ( n >= 5 ) { n -= 5; count++; } else { cout 2021. 7. 17.
[백준/BOJ] 11478번 - 서로 다른 부분 문자열의 개수 (C++) 문제 링크 코딩하기 전 생각하기 /* unordered_set으로 사전을 만들어보자. 2중 반복문과 substr 메서드를 이용해서 만들어지는 부분 문자열을 모두 구한다. 부분 문자열을 사전에 추가한다. 사전의 크기를 출력한다. */ 코드 #include #include #include using namespace std; int main() { unordered_set dict; string s; cin >> s; int len = s.length(); for ( int i = 0; i < len; i++ ) { for ( int j = 1; j < len - i + 1; j++ ) dict.insert(s.substr(i, j)); } cout 2021. 7. 17.
[백준/BOJ] 11004번 - K번째 수 (C++) 문제 링크 코딩하기 전 생각하기 /* sort 함수를 쓰면 시간 초과가 난다. 우선순위 큐 쓰는 법을 배워서 써보자. 숫자를 입력받아 priority_queue에 저장하자. pq의 k번 째 수를 출력한다. */ 코드 #include #include using namespace std; int main() { ios::sync_with_stdio(0); cin.tie(0); int n, k, a; cin >> n >> k; priority_queue pq; for ( int i = 0; i > a; pq.push(a); } for ( int i = 0; i < k - 1; i++ ) pq.pop(); cout 2021. 7. 16.
[백준/BOJ] 11650번 - 좌표 정렬하기 (C++) 문제 링크 코딩하기 전 생각하기 /* x값과 y값을 pair로 묶어서 벡터에 저장한다. comp 함수를 선언한다. x값을 오름차순으로 정렬한다. x값이 같을 때는 y값을 오름차순으로 정렬한다. 벡터를 정렬하고 출력한다. */ 코드 #include #include using namespace std; bool comp(pair a, pair b) { if ( a.first != b.first ) return a.first > n; int x, y; vector v; for ( int i = 0; i > x >> y; v.push_back(pair(x, y).. 2021. 7. 16.
[백준/BOJ] 1427번 - 소트인사이드 (C++) 문제 링크 코딩하기 전 생각하기 /* 문자열을 입력받고 문자로 나눠서 새로운 벡터에 저장한다. 벡터를 정렬하고 출력한다. */ 코드 #include #include using namespace std; bool comp(char a, char b) { return a > b; } int main() { string s; cin >> s; vector v; for ( auto c : s ) v.push_back(c); sort(v.begin(), v.end(), comp); for ( auto c : v ) cout 2021. 7. 16.
[백준/BOJ] 10814번 - 나이순 정렬 (C++) 문제 링크 코딩하기 전 생각하기 /* 나이, 이름, 가입 순서를 묶은 값을 저장하는 벡터를 생성한다. n개의 회원 정보를 벡터에 저장한다. comp 함수를 선언하자. 나이가 적은 회원이 앞으로 가게 한다. 먼저 가입한 회원이 앞으로 가게 한다. sort 함수와 comp 함수를 이용하여 벡터를 정렬한다. 벡터를 출력한다. */ 코드 #include #include using namespace std; bool comp(vector a, vector b) { if ( stoi(a[0]) != stoi(b[0]) ) return stoi(a[0]) > n; str.. 2021. 7. 15.
[백준/BOJ] 1755번 - 숫자놀이 (C++) 문제 링크 코딩하기 전 생각하기 /* int, string를 pair로 묶은 값을 저장하는 벡터를 생성한다. M부터 N까지 숫자와 해당 문자열을 벡터에 저장한다. 문자열을 기준으로 오름차순 정렬이 될 수 있도록 comp 함수를 선언하자. sort 함수와 comp 함수를 이용하여 벡터를 정렬한다. 한 줄에 10개씩 출력한다. */ 코드 #include #include using namespace std; bool comp(pair a, pair b) { return a.second < b.second; } int main() { vector str = { "zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine" }; vec.. 2021. 7. 15.
[백준/BOJ] 17215번 - 볼링 점수 계산 (C++) 문제 링크 코딩하기 전 생각하기 /* 크기가 10인 점수판 배열을 선언하자. 10번의 프레임이 채워질 때 까지 반복한다. '-' 일 때 계산의 편의를 위해 값을 '0'으로 바꾸자. 숫자일 때, 'P'일 때, 'S'일 때를 나눠서 점수를 계산한다. 규칙이 복잡하므로 디버깅을 해보면서 코드를 짜보자. 점수판의 점수를 다 더하고 출력한다. */ 코드 #include #include using namespace std; int main() { int score[10] = {0,}; string s; cin >> s; int frame = 0; // 0일 때 1번째 프레임, 1일 때 2번째 프레임 int times = 0; // 0일 때 1번째 시도, 1일 때 2번째 시도 int i = 0, max_times =.. 2021. 7. 15.
[백준/BOJ] 1431번 - 시리얼 번호 (C++) 문제 링크 코딩하기 전 생각하기 /* 입력받은 문자열을 벡터에 저장한다. sort 함수를 쓰기 전에 compare 함수를 만들자. 두 문자열의 길이가 다르면, 더 길이가 짧은 문자열이 앞으로 가게 한다. 두 문자열의 숫자인 자릿수의 합을 비교해서 작은 합을 가지는 문자열이 앞으로 가게 한다. 숫자 자릿수의 합이 같으면, 문자열 자체를 비교해서 먼저 사전에 나오는 문자열이 앞으로 가게 한다. compare 함수를 sort 함수의 인수로 넣고 벡터를 정렬한다. 벡터를 출력한다. */ 코드 #include #include using namespace std; bool compare(string a, string b) { if ( a.length() != b.length() ) return a.length() .. 2021. 7. 13.
반응형