https://www.acmicpc.net/problem/13023problem아이디어DFS 문제로, 조건을 만족하지 않으면 depth를 타고 올라와야 하기 때문에 visitedstart = false로 재설정해야 한다.시간초과 발생친구 관계 수 M(edges
https://www.acmicpc.net/problem/1759problem아이디어처음에는 idx부터 for문을 돌릴 생각을 못하고 isPromising() 함수를 따로 만들어서 너무 복잡해졌다.Back tracking 알고리즘을 사용할 때, 빈 root n
https://www.acmicpc.net/problem/11054problem아이디어처음에는 max 값의 인덱스에 대해서만 dp를 수행했는데 반례가 너무 많았다.그래서 모든 인덱스(key)에 대해 각각 dp(dpDown + dpUp)를 수행하여 결과를 res
https://www.acmicpc.net/problem/1182Problem아이디어Backtacking으로 풀 때, backTracking()에 for문을 하나 더 둬서 현재 위치 기준 다음 인덱스부터 탐색하도록 구현하였는데(pruning) 반례가 존재하여
🔗 Problem https://www.acmicpc.net/problem/1707 Problem 👩💻 Code 💡 Learned 아이디어
https://www.acmicpc.net/problem/14002problem아이디어며칠 전에 \[11054] 가장 긴 바이토닉 부분 수열 문제를 풀어서 해당 문제는 쉽게 해결하였다.수열 출력은 뒤에서부터 max, max-1, max-2, ..., 1 번째
🔗 Problem https://www.acmicpc.net/problem/2758 👩💻 Code 💡 Learned 아이디어 처음에 Back Tracking으로 구현해서 시간 초과 되었다.
https://www.acmicpc.net/problem/1339problem아이디어처음에 문자와 숫자의 매칭을 HashMap을 통해서 구현할까 했는데 굳이 그럴 필요가 없었다.아스키 코드를 통해 convert\[]에 저장 후, 내림차순 정렬하여 바로 총합을
https://www.acmicpc.net/problem/14225problem아이디어Bitmask 기반 brute force 문제long 타입 total\[] 을 만들어서 마지막에 최솟값을 찾았는데, 합계를 저장하는 것보다 boolean 타입 sumtotal
https://www.acmicpc.net/problem/14889problem요즘 문제가 잘 풀린다 \~~
🔗 Problem https://www.acmicpc.net/problem/1806 problem 👩💻 Code - Two-pointer package baekjoon; import java.io.BufferedReader; import java.io.Input
https://www.acmicpc.net/problem/2960소수의 연속합을 구하는 BJ1644를 풀기 전, 해당 문제를 통해 소수 구하기를 점검하였다.
https://www.acmicpc.net/problem/1644아이디어Two-pointer를 연습하기 위해 풀었다. (알고리즘 알고 시작)처음에 소수만 모아둔 primes를 만들지 않고 메인 로직에서 소수 판별까지 같이 했는데 너무 복잡해져서 리스트를 따로
https://www.acmicpc.net/problem/10814아이디어Class 생성 후 method overriding을 통한 정렬
https://www.acmicpc.net/problem/9935아이디어StringBuilder or Stack을 사용해야 시간초과가 발생하지 않는다.틀렸습니다처음에 폭발 문자열 자체가 아닌 폭발 문자열 안 문자로 해석하여 아예 구현을 잘못하였다.
https://www.acmicpc.net/problem/14425자료구조 점검Set & MapHash & Tree
https://www.acmicpc.net/problem/14426아이디어
🔗 Problem https://www.acmicpc.net/problem/14501 👩💻 Code 💡 Learned 아이디어 DP
https://www.acmicpc.net/problem/1717아이디어Union Find 문제findParent()에서 그냥이렇게 하면 부모 노드를 가져올 뿐 갱신하지는 않는다.parentx를 업데이트 해주어야 나중에 union할 때 속도가 훨씬 빠르다.
https://www.acmicpc.net/problem/1976아이디어union()에서 마지막으로 찾은 root에 대해서 갱신해야 한다!처음에 연결되어 있기만 하면 parent를 같게 설정해서 틀렸습니다꼼꼼하게 생각하고 구현하자.재귀 호출같은 Union Fi
https://www.acmicpc.net/problem/3584아이디어Union Find 문제라고 생각하고 풀었는데, LCA(Lowest Common Ancestor)라는 알고리즘이 따로 있었다.위 풀이는 Union Find 바탕으로, (내가 생각했을 때)두
https://www.acmicpc.net/problem/4195시간초과처음에는 전체 트리 생성 후 모든 노드에 대해 root와 같은지 판별하는 방식으로 구현하여 시간초과가 발생하였다.자식 노드 개수를 저장하는 level\[]을 만들어서 해결메모리 효율메모리
https://www.acmicpc.net/problem/1068아이디어풀고 나니 DFS로 구현했다는 걸 알았다.전체 tree의 leaves 수 - deleted node 기준 subtree의 leaves 수를 구한 뒤, deleted node를 삭제할 경우
https://www.acmicpc.net/problem/9012아이디어Queue 사용할까 했는데 Queue 없이 구현할 수 있는 것을 캐치하였다.해당 문제는 쉽게 풀었는데 원래 오늘 시뮬레이션과 구현 문제를 풀려고 했었는데 머리가 잘 안돌아가고 시간도 없어서
https://www.acmicpc.net/problem/12865아이디어행: n번째 물건 / 열: 1~k까지 무게n번째 물건의 w, v에 대하여 w 이상인 열에는 해당 물건을 담을 수 있으므로dp를 업데이트 해주었다.틀렸습니다처음에 행렬 곱셈 순서 구하는 문
https://www.acmicpc.net/problem/11659아이디어1~n번째까지의 합을 totaln에 담았다.이러한 방식으로 총합을 구하는 것을 Prefix Sum 알고리즘이라고 한다.
https://www.acmicpc.net/problem/5568아이디어Level이 0일 때, 즉 아직 카드를 고르지 않았을 때 StringBuilder를 생성하고sb에 고른 카드를 담도록 하였다.이후 해당 노드 탐색을 종료하면 sb에 담은 카드를 삭제해 주었
https://www.acmicpc.net/problem/2293아이디어dp 점화식을 세우는 데까지 시간이 꽤 걸렸다.처음에 dp를 2차원 배열로 선언하여 행은 각 동전, 열은 1~k로 설정하였다.dpx라면, 0번~x번까지의 동전을 사용하여 합이 y가 되는 경
https://www.acmicpc.net/problem/15686아이디어딱 보고 단순구현 문제인 줄 알고 풀려고 했는데 back tracking 유형이었다.
https://www.acmicpc.net/problem/15686아이디어Union Find가 바로 떠오르긴 했는데 실제 구현하는 건 오래 걸렸다.처음에 자료구조 선택을 잘못하고, caseOfUnion(어떻게 국경선을 열지) 로직을 복잡하게 설계하여 갈아 엎고
https://www.acmicpc.net/problem/9095아이디어가지고 있는 숫자가 1, 2, 3 이므로n-1 만드는 방법 + 숫자 1 사용하기 && n-2 만드는 방법 + 숫자 2 사용하기 && n-3 만드는 방법 + 숫자 3 사용하기와 같은 방법으로
https://www.acmicpc.net/problem/1912아이디어max( dp\[i-1] + arr\[i] , arr\[i] ) : 이전 max 값에 i번째를 더한 것(연속)과 i번째부터 새로 시작하는 것(연속 중단)을 비교하여 dp에 담았다.dp\[]
https://www.acmicpc.net/problem/11724아이디어이런 유형을 보면 union find부터 생각이 난다..dfs로 푸는 게 더 쉬울 거 같아서 구현은 dfs로 했다.
https://www.acmicpc.net/problem/5430자료구조 deque 사용해야겠다고 바로 떠올라서 구현까지 잘 했는데,deque에 있던 원소들이 다 삭제되어 empty가 될 때를 고려하지 않아서 출력 시 오류 발생하는 케이스를 틀렸습니다를 통해
https://www.acmicpc.net/problem/1931아이디어Meeting 클래스 생성 후 종료시간 기준 오름차순 sorting, 종료시간이 같다면 시작시간 기준 오름차순 sorting시작시간이 이전 종료시간보다 이후인 경우, 회의실에 배정할 수 있
https://www.acmicpc.net/problem/4358아이디어TreeMap 사용하여 삽입 시 정렬Value를 업데이트 하고 싶을 때는, 해당 map을 아예 삭제하고 다시 삽입해야 한다.
https://programmers.co.kr/learn/courses/30/lessons/81301프로그래머스 첫 문제 !
https://www.acmicpc.net/problem/1715아이디어합친 카드 묶음이 계속해서 더해지므로, 작은 숫자 카드 묶음부터 골라야 한다.Priority Queue를 사용하여 가장 작은 두 수를 꺼내서 더하고, 더한 수를 다시 queue 안에 넣었다
https://www.acmicpc.net/problem/2437아이디어오름차순 정렬 후, 1부터 측정할 수 있는 추의 무게를 찾아간다.weighti를 total에 더하면, i번째까지는 1~total 무게까지 측정할 수 있다.weighti-1과 weighti
https://www.acmicpc.net/problem/2109아이디어아이디어가 바로 떠오르지 않아 좀 고민했는데 잘 풀었다~우선순위 큐를 사용해서 fee 기준 내림차순 정렬 후, queue.poll()의 day가 3이라면, 3일 안에 즉 1, 2, 3일에
https://www.acmicpc.net/problem/2178아이디어오랜만에 BFS 구현하느라 조금 해맸다.맞았습니다 후 메모리 효율이 높은 다른 풀이를 확인해보니,상/하/좌/우 탐색을 배열에 담아서 탐색하는 방식으로 if문 4개를 1개로 합쳐 구현하였다.
https://www.acmicpc.net/problem/11279아이디어우선순위 큐 사용 !
https://www.acmicpc.net/problem/2630아이디어재귀 함수 사용하여 divide and conquer 방식으로 풀었다.
https://www.acmicpc.net/problem/1874아이디어push 시 1~n 순서대로 넣어야 하기 때문에 어느 값까지 넣었는지 pushed에 담았다.스택 안 정해진 순서대로 pop되어야 하는 것을 고려했다.
https://www.acmicpc.net/problem/17086아이디어처음에 1인 칸 저장하고 모든 0인 칸에 대해서 1인 칸까지의 거리를 구하려고 했는데 bfs로 풀어야 할 거 같아서 ? 위와 같이 구현하였다.1인 칸들을 queue에 모두 넣어주고, 상하
https://www.acmicpc.net/problem/16926지난주 카카오 인턴십 코테에 배열 돌리기가 나왔었다.미리 풀어봤으면 더 예쁘게 풀 수 있었을텐데..
https://www.acmicpc.net/problem/1748요즘 Implementation 유형 위주로 풀고 있다.
https://www.acmicpc.net/problem/1012상하좌우 탐색https://velog.io/@ssoyeong/BOJ-2178-%EB%AF%B8%EB%A1%9C-%ED%83%90%EC%83%8922.05.05 위 문제 풀 때에 비해 해당
https://www.acmicpc.net/problem/4963아이디어DFS로 연결된 섬 찾음입력 시 row, column 바뀌는 게 헷갈렸다.boolean flag여러 섬이 연결된 경우를 판단하기 위해 boolean으로 잡고 while문 내 if문을 만족할
https://www.acmicpc.net/problem/7576아이디어Point 클래스에 좌표뿐만 아니라 day를 추가해서 소요 날짜를 저장하였다.
https://www.acmicpc.net/problem/13023아이디어처음에 DP 생각을 못하고 class 만든 후 DFS를 stack으로 구현했다가 메모리초과 발생했다.map에 해당 높이만 저장하고 재귀로 풀었는데 DP를 이상하게 구현해서 시간초과 발생
https://www.acmicpc.net/problem/3190아이디어Queue 사용하여 tail을 설정한다.방향변환 정보를 stack에 저장할까 했는데 배열을 사용하였다.cvtIdx 사용하여 체크하는 것이 깔끔하다고 생각했기 때문
https://www.acmicpc.net/problem/2056아이디어위상 정렬 알고리즘 공부하고 시작numOfParents\[]: 각 작업의 선행 작업 수 저장children\[]: 나를 선행 작업으로 필요로 하는 작업 저장endTime\[]: 해당 작업이
https://www.acmicpc.net/problem/1238아이디어목적지 X -> 전체, 전체 -> 목적지 X 각각 최단 경로를 구해야 한다.전체 -> 목적지 X를 구하기 위해 입력 시 reverse하여 저장하고 해당 adjReverse를 사용하여 목적지
https://www.acmicpc.net/problem/1967아이디어처음에 문제를 잘못 이해해서 틀렸습니다이후 풀이법 참고루트로부터 최대 가중치를 가지는 leaf node를 찾고, 해당 leaf node를 루트 삼아 한 번 더 max 값 찾는 dfs를 돌
https://www.acmicpc.net/problem/2638아이디어치즈와 인접한 외부 영역(공기) == 9로 설정 후,다시 bfs 탐색을 통해 치즈(== 1)에 대해 isPromising() 조건을 따져 녹을 예정인 치즈(== 2)로 설정한 후 녹여준다
https://www.acmicpc.net/problem/2357아이디어새그먼트 트리 알고리즘 공부 후 풀었음배열을 생성한 후 각 node가 트리 형태로 연결되어 있다고 가정1~n까지의 nodes는 1 ~ n/2, n/2+1 ~ n 로 나누어 재귀로 값을 할
https://www.acmicpc.net/problem/1766아이디어위상정렬 문제임을 캐치각 문제 당 선행 문제 수를 numOfParents\[]에 저장해둔다.numOfParents\[x] == 0인 문제 x를 우선순위 큐에 넣고, 낮은 번호의 문제부터 뽑
https://www.acmicpc.net/problem/16946아이디어0인 칸 기준으로 bfs 돌려서 0인 그룹 찾기각 그룹별 칸의 개수 groupInfo에 저장1인 칸 기준 상하좌우 탐색해서 해당 그룹의 칸의 개수 합산시간초과 발생아이디어는 잘 생각해 냈
🔗 Problem https://www.acmicpc.net/problem/13023 problem 👩💻 Code 📌 Note 아이디어 DFS 문제로, 조건을 만족하지 않으면 depth를 타고 올라와야 하기 때문에 visited[start] = false로