알고리즘 스터디에 들어갔고, 자료구조 공부를 하기 시작했다.오늘은 스택부터자바를 주 언어로 하기 때문에 Stack 클래스를 썼다.줄을 지어 마지막에 들어온 데이터를 먼저 처리하는 구조를 가지고 있는 자료구조.이러한 구조를 후입 선출(LIFO:Last-In First-O
자료구조 타입 중 큐의 대해 공부했다.먼저 들어온 데이터가 먼저 나가는 구조의 데이터 타입. 선입선출(FIFO: First-In First-Out)이라고 한다.삽입이 일어나는 곳을 후단(rear), 삭제가 일어나는 곳을 전단(front)라고 한다.https:
큐 관련 문제를 풀어보았다.자바 Queue 클래스를 사용해서..LinkedList를 이용하여 생성한다.두가지 import문이 필요하다.https://www.acmicpc.net/problem/2164큐의 메소드만 잘 활용하면 쉽게 풀 수있다.제일 위에 있는 카
큐 관련 백준 문제를 하나 더 풀었다.문제 이해를 잘 못해서 살짝 고민함..첫 입력은 큐의 크기,두번 째 입력부턴1\. 양수 - add()2\. 0 - remove()3\. -1 - 입력 종료후 큐 안의 데이터를 출력하면 되는 문제였다.여기서 중요한 건 입력된 사이즈보
큐 관련 백준 문제를 풀었다.이제 큐 말고 다른 자료구조로 넘어가야 겠다.. 덱이라던지..https://www.acmicpc.net/problem/11866로직만 구하면 쉬운데 로직이 맞는지 잘 모르겠어서.. 해맴.1부터 N까지 큐에 add 한다.K - 1 번
덱을 배우고 구현해보았다.(처음에 덱이 deck..인줄알았다.. 게임 그만하길)double-ended queue의 줄임말로서 큐의 전단(front)와 후단(rear)에서 모두 삽입과 삭제가 가능한 큐를 의미한다. 그렇지만 여전히 중간에 삽입하거나 삭제하는 것은 허용되
LinkedList 연습을 하기 위해 LinkedList 카테고리의 문제를 풀려했는데황당하게도 LinkedList를 사용하면 메모리 초과가 나는 문제였다...뭐 문제 자체도 다른 사람 풀이를 보고 풀었긴 했는데.. 아무튼 웃프다.https://www.acmic
조합을 사용하는 알고리즘 문제를 2개 풀었다
동적 프로그래밍 관련 문제를 풀어보았다.
단계별 문제 풀어보기 큐 문제를 풀어봤다.
그래프 알고리즘 공부를 시작했다.오늘은 BFS(Breadth-First Search), 너비 우선 탐색을 공부했다.
어제는 BFS를 공부했으니 오늘은 DFS
그래프 관련 문제를 2문제 풀었다. 둘 다 DFS로 풀었다.
가볍게 문제풀이로 스택 관련 문제를 하나 풀었다.
문제 하나를 풀었다.
TIL 백준 단계별로 풀어보기 시간 복잡도 파트를 풀었다. https://www.acmicpc.net/step/53 백준 24262번: 알고리즘 수업 - 알고리즘의 수행 시간 1 https://www.acmicpc.net/problem/24262 단일 연산의 경우
병합정렬에 대해 공부했다.배열을 반으로 나눠서 반쪽씩 정렬한 뒤 다시 붙이는 방식이다.이 방식을 쓰면 시간 복잡도가 줄어든다고 한다..그런데 구현이 너무 어려워서 몇번씩이고 코드를 분석하였다.말은 참 쉬운데 코드 이해는 어렵다.https://www.acmicp
https://www.acmicpc.net/problem/1747정수 n을 입력 받고n보다 크거나 같은 수 중 소수이면서, 펠린드롬인 수 중 가장 작은 수를 구하면 된다.
https://www.acmicpc.net/problem/6588먼저 에라토스테네스의 체로 1000000까지의 소수를 구한다.그 후 소수들의 합을 구한다.n의 범위에서 가장 큰 소수부터 하나씩 빼가면서 구한다. 가장 작은 소수는 3이니 n-3부터 시작한다. (
https://www.acmicpc.net/problem/11659이 문제는 단순 반복문으로 풀면 무조건 시간초과가 난다.그래서 누적 합을 구하는 알고리즘인 세그먼트 트리를 사용해야한다.참고 블로그:https://blog.naver.com/ndb796
https://www.acmicpc.net/problem/1094이 문제를 풀긴 풀었는데 풀고나서도 이게 왜 되지?..하고 고민하게 된다.기록용으로 적어둔다..이게 왜되지?? 이 문제를 풀면서 동시에 별찍기 문제를 풀었는데 내가 구현 문제에 아주 취약하다는 것
https://www.acmicpc.net/problem/1308 진짜 나를 힘들게 하는 문제였다.. 3시간 정도 고민하다 안돼서 그냥 풀이를 봤다 아 불행해..................................
https://www.acmicpc.net/problem/1312새로운 알고리즘을 알게되었다..눈으로 로직을 보니 대충은 알겠는데 완전한 이해는 되지 않아서 기록용으로 적어둔다.
백준 실버5 난이도에 해당하는 문제들
https://www.acmicpc.net/problem/2167이 문제는 한번 읽어봤을 때 문제 이해가 좀 제대로 안된다.나는 만약 1 3 2 3 의 입력이 들어온다면(1,3) (2,1) (2,2) (2,3) (2,4) 의 값을 모두 구하는 것인줄 알았는데(
2822번: 점수 계산 https://www.acmicpc.net/problem/2822 정렬 알고리즘만 알면 되는 간단한 문제다. score 배열과 점수의 번호인 num 배열을 만들어 score배열을 정렬할 때 num배열도 같이 움직여 주었다. 그 뒤 num배열을 인덱스 0부터 4까지만 오름차순으로 정렬을 해주면 된다.
10816번: 숫자 카드2 https://www.acmicpc.net/problem/10816 이분 탐색을 알면 풀 수 있지만 약간 다르다. 이 문제는 이분 탐색으로 단 하나의 요소만 찾으면 되는게 아니라 중복 요소가 몇개 있는지도 찾아야 한다. 1 2 3 4 4
https://www.acmicpc.net/problem/15829구현은 쉬운 편이다.int형 변수 n과 문자열 str을 받고str을 charToArray()를 통해 char배열로 만든뒤반복문을 통해 하나하나 31의 제곱을 곱하고 더하면 된다.마지막엔 1234
https://www.acmicpc.net/problem/11650이 문제는 예전에 병합 정렬로 푼 적이 있다.그러나 11651번을 풀때 시간초과가 나서 람다식을 이용한 방식을 다시 배웠다.학원에서 람다식을 막 다시 배웠기도 하고 연습 하는 겸 해보았다.이 풀
진법 변환 문제
정렬, 이진 탐색
자바 감을 잃지 않기 위한 연습용 문제
\[SWEA] 1206. \[S/W 문제해결 기본] 1일차 - View반복문과 배열로 풀 수 있는 문제건물 높이를 n개 받을 때arr0,arr1 / arrn-2,arrn-1 는 0이므로 비교 범위를 j>=2 && j<n-2 로 둔다.비교군 건물과 양 옆에 있는 건
피보나치 수 재귀 할 때 많이 보던 피보나치 수원래 풀던 대로 풀면시간초과가 난다.재귀를 하며 중복 계산을 하게 되므로시간 복잡도가 O(n^2), 매우 높아진다.그렇기 때문에 알고리즘 분류에 써져 있는 것처럼 다이나믹 프로그래밍을 사용해야 함DP(Dynamic prog
피보나치 함수 DP로 피보나치 함수를 풀 때와 비슷하게..각 값을 배열에 저장하면 된다.0 과 1의 값을 각각 저장해야하니 2차원 배열을 사용하는 것으로..0일 때와 1일 때의 값은 주어져있으니 2일 때의 값부터 구해서 배열에 넣어주면 된다F(n) = F(n-1) +
백만 장자 프로젝트시간이 너무 많이 걸려버린 문제..결국 풀이를 봤다.처음엔 최대값을 구해서 정렬하고..어쩌구 하는 방법을 생각했는데 그러면 당연히 시간도 많이 걸리고 풀이도 복잡함..그래서 풀이 영상을 본 풀이첫날부터 시작해서 최댓값인 날을 구한다.최댓값인 날까지 (