본문 바로가기
반응형

분류 전체보기172

[백준/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.
[백준/BOJ] 2164번 - 카드2 (C++) 문제 링크 코딩하기 전 생각하기 /* 큐를 사용하자. 큐의 길이가 1이 될 때 까지 다음을 반복한다. 맨 앞의 숫자를 pop한다. 그 다음 맨 앞의 숫자를 pop하고 맨 뒤에 push한다. 마지막 남은 숫자를 출력한다. */ 코드 #include #include using namespace std; int main() { int n; queue q; cin >> n; for ( int i = 1; i 1 ) { q.pop(); int tmp = q.front(); q.pop(); q.push(tmp); } cout 2021. 7. 12.
[백준/BOJ] 2941번 - 크로아티아 알파벳 (C++) 문제 링크 코딩하기 전 생각하기 /* 문자열을 입력받고 문자열을 순회한다. =과 -은 세지 않는다. j가 나왔을 때 전의 알파벳이 l이나 n이면 건너뛴다. dz=가 연속으로 나오는 경우에는 count에서 1을 뺀다. */ 코드 #include #include using namespace std; int main() { string s; cin >> s; int count = 0; for ( int i = 0; i 1 ) { if ( s[i] == '=' && s[i-1] == 'z' && s[i-2] == 'd' ) { count--; continue; } } if ( s[i] == '=' || s[i] == '-' ) continue; if ( i.. 2021. 7. 12.
[백준/BOJ] 5355번 - 화성 수학 (C++) 문제 링크 코딩하기 전 생각하기 /* t만큼 반복한다. 한 라인을 입력받고 규칙에 따라 연산을 해준다. */ 코드 #include #include using namespace std; int main() { int t; double n; string s; cin >> t; for ( int i = 0; i > n; getline(cin, s); for ( auto c : s ) { if ( c == '@' ) n *= 3; if ( c == '%' ) n += 5; if ( c == '#' ) n -= 7; } printf("%.2f\n", n); } } 느낀점 백준에서 '상근'이라는 이름을 애용하는 것 같다. 울 삼촌 이름인데.. (주의) 기록용으로 작성한 글입니다. 코.. 2021. 7. 12.
반응형