profile
개발 일기
post-thumbnail

[ BOJ / C++ ] 1431번 시리얼 번호

이번 문제는 문자열을 주어진 우선순위에 따라 정렬시켜 해결하는 문제였다. 본인은 C++의 표준 라이브러리 중 sort함수를 사용하였다.sort함수를 사용할 때에 3번째 인자를 비워두면 오름차순으로 정렬된다.3번째 인자에 들어갈 정렬 기준 함수 compare함수를 정의하

2021년 10월 4일
·
0개의 댓글
post-thumbnail

[ BOJ / Python ] 2448번 별 찍기 - 11

바로 이전에 C++로 풀어보았던 문제를 Python으로 다시 풀어보았다. 앞서 풀었던 로직 그대로 해결하였기 때문에 설명은 생략하겠다. \[ BOJ / C++ ] 2448번 별 찍기

2021년 10월 1일
·
0개의 댓글
post-thumbnail

[ BOJ / C++ ] 2448번 별 찍기 - 11

이번 문제는 분할 정복으로 해결하였다. 전에 풀어보았던 별 찍기보다 복잡한 형태의 문제여서 고민을 많이 했다. 출력되는 별이 많으므로 2차원 배열에 저장하기로 하였다.n의 범위가 3x2^10까지이므로 3072까지 가능하다. 예제 출력을 자세히 보면 가장 위에 별이 가로

2021년 10월 1일
·
0개의 댓글
post-thumbnail

[ BOJ / C++ ] 5904번 Moo 게임

이번 문제는 분할정복으로 해결하였다. 처음에는 재귀방식으로 Moo배열을 만들어 주려고 생각을 했었다. 그러나 구현하던 도중에 n의 범위가 10억이기 때문에 메모리 초과가 발생한다는 사실을 알게 되었다. 그래서 Moo배열의 길이를 이용하여 길이가 n보다 크거나 같을 때까

2021년 10월 1일
·
0개의 댓글
post-thumbnail

[ BOJ / C++ ] 16120번 PPAP

이번 문제는 Greedy 알고리즘을 통해 해결하였다. PPAP 문자열에서 P 하나를 PPAP로 바꾼 문자열이 PPAP가 된다는 정의에서 이해가 조금 필요했다. 이 정의를 간단한 예시들로 정리해보면 PPAP -> PPAPPAP(1번 P가 PPAP가 된 경우), PPPAP

2021년 9월 25일
·
0개의 댓글
post-thumbnail

[ BOJ / C++ ] 20921번 그렇고 그런 사이

이번 문제는 Greedy 알고리즘을 활용하여 해결하였다. 우선 규칙을 찾아보는 것이 중요했다.vi가 가질 수 있는 그렇고 그런 사이는 n-i개이다.이를 0부터 n-1까지 반복하고 더하여 k를 만들어내는 문제이다.k의 범위가 0보다 크거나 같고, n-1보다 작거나 같다면

2021년 9월 24일
·
0개의 댓글
post-thumbnail

[ BOJ / C++ ] 11557번 Yangjojang of The Year

이번 문제는 정렬로 간단하게 해결하였다.학교명과 술 소비량을 같이 저장하기 위해 vector<pair<string, int>>형을 사용한다.술 소비량으로 내림차순 정렬을 해야하므로 compare함수를 작성하였다.STL의 sort함수에 compare을 넣어 내

2021년 9월 21일
·
0개의 댓글
post-thumbnail

[ BOJ / C++ ] 19542번 전단지 돌리기

이번 문제는 DFS를 통한 그래프 탐색으로 해결하였다. 결과적으로 현재 위치에서 갈 수 있는 최대 깊이-현재 위치의 깊이>=d인 위치까지 가면 모든 노드에 전단지를 돌릴 수 있게된다. 경로들을 vector배열로 저장해준다.각 노드에서의 깊이와 최대 깊이를 나타내기 위한

2021년 9월 20일
·
0개의 댓글
post-thumbnail

[ BOJ / C++ ] 15591번 MooTube (Silver)

이번 문제는 BFS를 통한 그래프 탐색으로 해결하였다. 문제를 이해하는데 조금 오래 걸렸던 것 같다.매 사이클마다 방문한 영상인지 체크하기 위한 visited 배열을 선언한다.영상은 vector 배열로 선언하여 각 영상에서 추천되는 영상을 저장한다.영상 간의 연결은 양

2021년 9월 20일
·
0개의 댓글
post-thumbnail

[ BOJ / C++ ] 18429번 근손실

이번 문제는 백트레킹을 통해 해결하였다.n이라는 사이클동안 키트를 한번씩만 사용할 수 있으므로 사용 여부를 체크하는 bool형의 chk 배열을 선언해준다.DFS함수의 인자로 일수를 나타내는 day와 현재 중량을 나타내는 cur을 넣어준다.DFS함수 내에서 day와 n이

2021년 9월 14일
·
0개의 댓글
post-thumbnail

[ BOJ / Python ] 2012번 등수 매기기

C++로 풀어본 문제를 파이썬으로도 풀어보았다. \[ BOJ / C++ ] 2012번 등수 매기기풀이 방법 또한 똑같이 하였다. 백준의 python3로 제출하면 시간 초과가 발생했지만 PyPy3으로 제출하면 정답으로 처리되었다.

2021년 9월 14일
·
0개의 댓글
post-thumbnail

[ BOJ / C++ ] 2012번 등수 매기기

이번 문제는 그리디 알고리즘을 통해 간단하게 해결하였다.입력받은 예상 등수를 오름차순으로 정렬한다.예상 등수를 wish라고 하고 등수를 rank라고 한다면, abs(wish-rank)가 최소가 되기 위해서는 예상 등수 배열의 첫번째 수부터 차례대로 등수를 메긴다.반복문

2021년 9월 14일
·
0개의 댓글
post-thumbnail

[ BOJ / Python ] 2502번 떡 먹는 호랑이

이번 문제는 피보나치수열의 변형 문제였다. 패턴을 찾기 위해 미지수 a와 b를 대입해보았다.d가 6이라면,\-> k0=a\-> k1=b\-> k2=a+b\-> k3=a+2b\-> k4=2a+3b\-> k5=3a+5b이러한 형태가 나타난다.미지수가 2개이기 때문에 고민을

2021년 9월 13일
·
0개의 댓글
post-thumbnail

[ BOJ / Python ] 9655번 돌 게임

이번 문제는 패턴을 찾아 해결하였다. 처음에는 1개나 3개를 가져가는 모든 경우를 구해야하나 고민하였다. 그러다가 아이디어가 생각났다.돌을 1개 혹은 3개만 가져갈 수 있다는 것은 첫번째 시도에서는 홀수가 되고, 두번째 시도에서는 짝수가 된다는 의미이다.1,3 모두 홀

2021년 9월 11일
·
0개의 댓글
post-thumbnail

[ BOJ / Python ] 1038번 감소하는 수

\[ BOJ / C++ ] 1038번 감소하는 수C++로 풀어봤던 문제를 python으로 다시 풀어보았다. 확실히 python은 내장함수가 많아서 코드가 짧게 나오는 것 같다. append와 len, sorted 등을 사용하였다.

2021년 9월 10일
·
0개의 댓글
post-thumbnail

[ BOJ / C++ ] 1038번 감소하는 수

이번 문제는 백트레킹을 활용하는 문제였다. 처음에 고민했던 것은 결과값을 n을 입력 받은 후에 구할지, 미리 결과값을 배열로 저장해둘지 결정하는 것이었다. 본인은 결과값들을 배열에 저장하기로 하였다.우선 조건으로 명시되어야 하는 것이 앞의 자리가 가장 커야한다는 것이었

2021년 9월 10일
·
0개의 댓글
post-thumbnail

[ BOJ / Python ] 15658번 연산자 끼워넣기 (2)

\[ BOJ / C++ ] 15658번 연산자 끼워넣기 (2)파이썬으로도 해결해보았다. C++ 코드와 조금은 다르게 풀어보았다.DFS의 인자를 줄이는 대신에 DFS 재귀호출 이후 갯수를 줄였던 연산자의 갯수를 다시 늘린다.maxi, mini의 값은 python 내장함수

2021년 9월 10일
·
0개의 댓글
post-thumbnail

[ BOJ / C++ ] 15658번 연산자 끼워넣기 (2)

이번 문제는 백트레킹을 통해 해결하였다.DFS의 인자를 현재 인덱스+1,누적된 결과값, +갯수, -갯수, \*갯수, /갯수로 정의한다.모든 경우를 전부 비교해야 하므로 각 연산자의 갯수가 0보다 크다면 그 연산을 진행한다.DFS의 첫번째 인자, 즉 현재 인덱스+1에 해

2021년 9월 10일
·
0개의 댓글
post-thumbnail

[ BOJ / C++ ] 15665번 N과 M (11)

이번 문제는 백트레킹 알고리즘을 활용하여 해결하였다. 문제의 조건없이 출력하는 것은 쉽지만 같은 수를 여러 번 골라도 되지만 길이M의 수열끼리는 중복을 허용하지 않는다는 조건에서 생각이 필요했다.bool형 num_chk 배열을 통해 입력된 값이 존재하는지 확인한다.만약

2021년 9월 8일
·
0개의 댓글
post-thumbnail

[ BOJ / C++ ] 13397번 구간 나누기 2

이번 문제는 이분탐색을 통해 해결하는 문제였다. 이분탐색의 범위에 대해서 고민을 많이 했던 것 같다. 이분탐색의 범위는 0과 배열의 최대값으로 하였다.배열을 돌며 해당 인덱스에서의 최대값-최소값의 값이 mid보다 크다면 cnt를 증가시켜주고, cnt가 m보다 작거나 같

2021년 9월 4일
·
0개의 댓글