1012 - 유기농 배추
난이도: 실버 2 날짜: 2023년 2월 16일 상태: Correct/Retry 추가 검토 여부: No 알고리즘 : DFS solution pair array를 사용하여 배추가 심어져 있는지의 여부(0, 1)와 벌레가 도달 가능/불가능 여부(true, false)의 정보를 저장했다. 배열은 N*M의 크기를 가지는 일차원 배열이며 x, y값이 곧 행과 열의 index이므로 이를 이용하여 배열을 참조했다. dfs함수를 구현하여 기존의 벌레 도달 지역이 아닌 곳의 배추가 심어져 있다면 ans를 증…
apt commands
💡 아래 커멘드 중 install을 빼고 사용할 곳이 얼마나 있나 싶지만… 멍청하게도 /bin에서 다짜고짜 삭제를 감행하는 짓을 벌이고 난 후에 아래 apt purge를 사용해서 완전 삭제가 가능했다. 이런 특수한 경우에 꽤나 유용하게 사용할 수 있다. APT Usage 패키지 목록 갱신 apt update 패키지 업그레이드 apt upgrade 패키지 설치(+dependency) apt install <package> 패키지 삭제(설정 파일 제외) apt rem…
Ubuntu 22.04 local setting
💡 이미 윈도우 등 타 환경에서 우분투 ios파일로 우분투 설치 usb는 만들어서 우분투는 설치되었다고 가정한다. 한/영 변환 설정 fcitx5를 이용한다. ibus, uim등의 방법을 사용할 수도 있지만 이는 추후에 추가한다.(2/14/2023) fcitx5 다음 명령어를 터미널에 입력하여 fcitx5를 설치한다. sudo apt install fcitx5 설치가 완료되면 Settings → Region & Language → Manage Installed Language에…
1003 - 피보나치 함수
난이도: 실버 3 날짜: 2023년 2월 12일 상태: Correct 추가 검토 여부: No 알고리즘 : DP solution 입력값 범위에 따라 fibo(40)까지만 연산하면 된다. fibo(N)에서 사용하는 fibo(1)과 fibo(0)의 호출수는 fibo(N-1)의 fibo(1), fibo(0)의 호출수와 fibo(N-2)의 fibo(1), fibo(0)의 호출수와 같다. 40개의 경우에 대해 이전 값을 배열에 저장해 두는 방식으로 재귀 없이 직접 참조가 가능하다. code #incl…
18111 - 마인크래프트
난이도: 실버 2 날짜: 2023년 2월 12일 상태: Correct 추가 검토 여부: No 알고리즘 : 브루트포스 solution 주어진 입력 범위에 대한 모든 경우의 수를 탐색한다고 했을 때, 500 * 500 * 256 = 64,000,000이므로 완전 탐색을 해도 시간은 충분하다. 문제에서 놓치기 쉬운 조건들이 많은 편이었다. 같은 시간이 걸릴 경우 가장 높은 높이를 가지는 경우를 정답으로 출력할 것 블록의 개수가 부족할 경우에는 블록을 쌓을 수 없고 블록을 캐는 것만 가능하다. 블…
15829 - Hashing
난이도: 브론즈 2 날짜: 2023년 2월 11일 상태: Correct 추가 검토 여부: No 알고리즘 : 정수의 성질 solution 얼핏 생각하면 난감하지만 mod연산의 특징을 이해한다면 쉽게 풀 수 있다. mod 1234567891 공간에서 값을 가지기 때문에 31의 50승이라는 말도 안 되는 수임에도 불구하고 연산 과정마다 mod연산을 통해 hash값을 구할 수 있다. 각각 따로 mod한 값을 이후에 더한 후 mod해도 다 더해서 mod한 값과 같다. code #include <…
10773 - 제로
난이도: 실버 4 날짜: 2023년 2월 10일 상태: Correct 추가 검토 여부: No 알고리즘 : stack solution stack자료구조를 사용해서 0이 입력되면 pop을 수행하고 그 이외의 경우에 대해 push를 수행한다. code #include <iostream> #include <stack> using namespace std; int main() { int N; cin >> N; int input; stac…
10989 - 수 정렬하기 3
난이도: 브론즈 1 날짜: 2023년 2월 10일 상태: Correct 추가 검토 여부: Yes 알고리즘 : 메모리 고려 solution 본 문제의 최대 테스트 케이스의 수는 천만이다. short형 배열을 선언한다고 해도 20MB의 메모리 공간을 소모한다. 문제에서 제한한 메모리 공간은 8MB이니 불가능하다. 입력 최대 크기는 10000이므로 0~10000의 정수의 개수를 세는 배열을 선언한다. 이 배열의 원소 수만큼 반복하여 출력하면 문제 조건에 부합한다. code #include <…
11651 - 좌표 정렬하기 2
난이도: 실버 5 날짜: 2023년 2월 10일 상태: Correct 추가 검토 여부: No solution pair를 사용해서 문제 조건에 맞게 정렬되어 출력되도록 한다. code #include <iostream> #include <algorithm> using namespace std; int main() { ios::sync_with_stdio(false); cin.tie(NULL); int N; cin >> N; …
7568 - 덩치
난이도: 실버 5 날짜: 2023년 2월 10일 상태: Correct 추가 검토 여부: No solution 입력 범위를 생각해 보면 이중 for문을 사용하여 모든 경우에 대해 연산해도 충분하다. pair와 이중 for문을 활용하여 한 원소에 대한 다른 모든 원소의 대소관계를 비교하였다. code #include <iostream> #include <algorithm> using namespace std; int main() { int N; cin &g…
4949 - 균형잡힌 세상
난이도: 실버 4 날짜: 2023년 2월 9일 상태: Correct/Retry 추가 검토 여부: Yes 알고리즘 : stack solution 입력받은 문자열에 대해서 string헤더의 substr함수를 사용하여 재귀적으로 검사하였다. 소괄호와 대괄호가 알맞게 열리고 닫힌 경우에 대해 그 안의 모든 문자열을 재귀함수의 입력으로 넣었다. 결과적으로 정답이었으나 상당히 많은 시행착오가 있었고 적지 않은 시간을 소모했다. stack을 사용하여 훨씬 간단한 풀이가 가능하다. 괄호가 열리고 닫히는 …
1085 - 직사각형에서 탈출
난이도: 브론즈 3 날짜: 2023년 2월 7일 상태: Correct 추가 검토 여부: No solution 수를 비교하여 출력만 하면 되는 매우 단순한 문제이다. code #include <iostream> using namespace std; int main() { int x, y, w, h; cin >> x >> y >> w >> h; int width, hight; width = (x < w …
11050 - 이항 계수 1
난이도: 브론즈 1 날짜: 2023년 2월 7일 상태: Correct 추가 검토 여부: Yes solution 이항계수를 구하는 문제이다. 이항계수란 $_nC_k$를 의미한다. 이항계수를 계산하기 위해서는 factorial연산을 필요로 한다. 직접 구현할 수도 있지만 cmath헤더파일의 tgamma함수를 이용하면 factorial을 쉽게 구할 수 있다. tgamma함수는 (인자-1)factorial을 출력한다. code #include <iostream> #include &…
11650 - 좌표 정렬하기
난이도: 실버 5 날짜: 2023년 2월 7일 상태: Correct 추가 검토 여부: No solution 처음에는 priority_queue자료구조를 이용하여 입력과 동시에 정렬하려고 생각했으나 pair를 사용하여 오름차순으로 정렬해야 하는 상황이었으므로 pair<int,int>배열을 이용하여 입력을 받은 후 sort를 이용하여 정렬하였다. pair배열을 sort를 이용해서 정렬했을 때 first에 따라 오름차순으로 정렬하고 first가 같을 경우 second 값에 따라 오름차순…
11866 - 요세푸스 문제 0
난이도: 실버 5 날짜: 2023년 2월 7일 상태: Correct 추가 검토 여부: Yes solution 이 문제를 해결하기 위해 queue를 사용하여 차례에 맞는 숫자를 pop하는 방식을 사용했다. 차례에 맞지 않는 경우 pop후 다시 push하여 circle을 구현하였다. 처음에는 deque를 통해 구현하려 했는데, 처음 코드처럼 코딩할 것면 굳이 deque가 아니라 queue로 충분하다… 이 문제에서 double-free segmentaion fault로 인해서 많은 시간을 사용하였…