본문 바로가기
반응형

Algorithm/Baekjoon54

[백준/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] 11656번 - 접미사 배열 (파이썬) 문제 링크 코딩하기 전 생각하기 ''' 접미사 배열을 만들자. [1:len(s)]와 같은 인덱스기능을 사용해서 앞 글자를 제거해 나가며 접미사 배열을 채운다. 접미사 배열을 sort하고 출력한다. ''' 코드 li = [] s = input() n = len(s) for i in range(n): li.append(s) s = s[1:len(s)] for i in sorted(li): print(i) 느낀점 li.append(s[i:]) 이렇게 하면 더 간단하다. 새로운 것을 또 알아간다. (주의) 기록용으로 작성한 글입니다. 코드가 허접하거나 알고리즘의 효율이 낮을 수 있습니다. 댓글 환영합니다! 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.
[백준/BOJ] 10867번 - 중복 빼고 정렬하기 (파이썬) 문제 링크 코딩하기 전 생각하기 ''' 중복을 허용하지 않는 파이썬의 set을 사용하자. sort하고 출력하자. ''' 코드 n = int(input()) li = map(int, input().split()) li = sorted(list(set(li))) for i in li: print(i, end = " ") 느낀점 n을 입력받을 필요도 없다. 파이썬과 set이 다했다. (주의) 기록용으로 작성한 글입니다. 코드가 허접하거나 알고리즘의 효율이 낮을 수 있습니다. 댓글 환영합니다! 2021. 7. 13.
[백준/BOJ] 11866번 - 요세푸스 문제 0 (C++) 문제 링크 코딩하기 전 생각하기 /* 큐를 사용하자. 큐가 empty가 될 때까지 반복한다. k-1번 만큼 맨 앞의 숫자를 pop하고 맨 뒤에 push한다. 맨 앞의 숫자를 pop하고 answer 벡터에 저장한다. answer 벡터를 출력한다. */ 코드 #include #include using namespace std; int main() { int n, k; queue q; vector v; cin >> n >> k; for ( int i = 1; i 2021. 7. 12.
반응형