주어지는 n 칸 만큼 뛰어서 가는 경우의 수를 구하는 문제.주인공 효진이는 1칸 또는 2칸씩 뛰어갈 수 있다.처음엔 그냥 DFS에 익숙해서 DFS로 시도했다. 근데 n의 값이 2000까지 입력될수있기에 런타임에러가 발생한다. 그래서 DFS 상위호환인 DP방식으로 문제를
그냥 구현 문제인듯하다. 한칸 씩 이동할때마다 건전지가 1씩 소모된다.지금까지의 거리를 2배씩 순간이동하면 건전지 소모는 없다.목적지 거리까지의 최소한의 건전지 소모량을 구해라이러한 유의 사항들을 숙지하고 입력값중 제일 큰 숫자인 5000을 기준으로 한번 계산을
DFS문제이다. 문제를 잘 읽어야한다. 문제에서는 해당 numbers에 있는 요소들을 한번씩만 사용하고 +,-를 해줘서 target과 같은 수를 만드는 경우의 수를 return하라고 한다.그래서 코드에서의 빽트래킹을 하는 부분을 해당 L이 numbers배열과 길이가 같
(0,0) 지점에서 (n,m) 지점까지 가는 최단거리를 구하는 문제이다. 종점에 도달하지 못하는 경우에는 -1을 출력한다. 효율성 체크를 하기 때문에 BFS로 풀어야한다 ;;처음에는 효율성테스트 같은 거 있는 줄 모르고 DFS로도 풀 수 있어서 DFS로 도전했다.재귀호
내가 생각하는 DFS() 패턴구조가 있는데, 이 문제는 꼭 그런 패턴구조가 필요없다는 것을 알려준다.어려운 문제는 아닌데, 2차원 배열에 맞는 조건을 신경 써서 DFS호출을 해줘야한다.그리고 중복은 안되기 때문에 체크배열을 이용해서 방문 체크를 해주면 좋을 것같다.
문제 풀이
그리디,, 최선의 방법을 찾아야 한다. 처음에 이런저런 방식으로 시도했는데 다 실패. 다음 방식도 시간초과 실패. 해결하기 위해서 인터넷을 참고..테스트 케이스 10번이 되게 시간이 오래걸리기 때문에 StrungBuilder를 이용해 시간을 단축시킨다.number =
게임 캐릭터를 4가지 명령어를 통해 움직이려 합니다. 명령어는 다음과 같습니다.U: 위쪽으로 한 칸 가기D: 아래쪽으로 한 칸 가기R: 오른쪽으로 한 칸 가기L: 왼쪽으로 한 칸 가기캐릭터는 좌표평면의 (0, 0) 위치에서 시작합니다. 좌표평면의 경계는 왼쪽 위(-5,
문제가 애초에 테스트케이스를 제한적으로 줘서 잘 보고 이해해야함. 문제에서 요구하는 것은 결국 마지막에 가장 큰 값을 출력해야 한다는 것이다.행의 개수가 10만까지라서 DFS로 양방향밑으로 가면서 모든 경우를 탐색해서 최댓값을 찾는 방식은 매우 비효율적이다. DFS가
스택을 이용한 풀이방식. 처음에 그냥 리스트로 시도하다가 if()로 break 못해서 다른 자료구조로 풀이. 스택,큐 등등 좋은 풀이 방식 많으니까 다른 생각도 좀 해서 빨리빨리 풀어보자 이런 쉬운 문제는,,
LFU 란? 프로세스 처리 순서를 매기는 방식을 가장 오래 사용되지 않은 것을 제거시키면서 크기에 맞게 새로운 프로세스를 할당시켜주는 방식이다.이 알고리즘을 나는 스택으로 구현했다. 왠만해서는 스택으로 구현해도 다 맞는다.hit는 해당 프로세스가 들어올때 이미 캐시메모
이 문제는 투포인터,슬라이딩윈도우 방식으로 lt,rt를 슬라이딩 시키면서 값을 구하는 문제!!!!!!!!새로운 배열에 값을 담아준다.rt를 증가시키는 for문을 만들어준다.그냥 전부 다 sum에 더해준다. 이 때 sum==n이면 answer++를 해준다.else문으로
문제 자체는 쉽다. Map에 담아서 문제에 맞게 풀어주면 된다. 근데 Map정렬하는 법을 알아야 풀수있는 문제이다. 이번 기회에 key,value 값 기준으로 정렬하는 방법을 알아두자.
맞는지도 모르겠고, 그냥 쭉쭉 풀었는데 메모리초과가 발생. 입력값이 큰데 스택을 2개 구현해서 하나하나씩 집어넣어서 그런거같다.문제이해가 잘 안되는 이상한 문제이다.아무튼 문제풀이를 해보면 이 문제는 스택이다. 스택을 이용해서 문제를 해결해야한다.근데 main컨테이너를
문제의 핵심1\. 정렬을 위해서 int타입으로 변경한 후에 새로운 배열에 저장.2\. Arrays.sort에서 람다를 이용한 정렬3\. PrioritiyQueue를 이용한 시작,종료 시간 비교하면서 객실 체크
문제 보자마자 DFS가 생각났는데, 문제 입력값 조건 보고 바로 안될거같아서 DP문제라는걸 깨달음.바로 DP\[] 생성해주고 DP\[]에 최소 연산의 수를 저장해준다. 이때 최소연산의 수를 비교하기 때문에 초기값은 MAX값으로 셋팅.for문으로 x~y까지 돌려주고 해당
DP문제의 기본중에 기본이다..!
최소공배수를 구하는 방법.1\. 두 수를 비교하면서 최대공약수 즉, 나눳을 때 나머지가 0이되는 수를 구한다.2\. 최소공배수 함수와 최대공약수를 구하는 함수 gcd,lcm을 만든다.3\. 최소공배수 함수에서 gcd을 호출하고 두 수를 곱해준 상태에서 두 수의 최대공약
아 카카오는 문제를 진짜 귀찮게 낸다. 그냥 푸는법이없네. 문제 자체가 어렵다기 보다는 그냥 풀기 까다롭고 귀찮고 문제 읽는데 시간이 오래걸린다. 별로 안풀고싶다.일단 내가 막혔던 부분은 공백,특수문자,숫자가 포함되면은 그 쌍은 버려야한다는 조건에서 살짝 헷갈렸다. 그
좋은 문제다. 값의 범위가 엄청클수있기 때문에 int를 넘어설수있기에 long으로 변환해서 소수를 체크해줘야한다. 근데 이렇게 해도 1번 테케가 계속 시간초과가 발생했는데, 이 것을 찾는데 오래걸렸다.값의 범위가 엄청클수있기 때문에 int를 넘어설수있기에 long으로
처음에 문제 이해가 잘 안됐는데 그래도 금방 이해해서 바로 문제를 해결했다.처음에 StringBuilder안썻는데 시간초과 떠서 사용했다. 이런 문자열 문제는 이론상 완벽하다 싶은데 시간초과뜨면 StringBuilder 쓰면된다. 그리고 진법변환 명심하자.이렇게 써주면
요즘은 문제만 이해하면 바로바로 로직을 짜는 듯하다. 이제는 효율성을 생각할때.ArrayLsit<>로 문제를 풀었는데 효율이 안좋아서 , PriorityQueue로 해결.이 문제에서 만약에 k이상의 수를 만들수없을 때 -1리턴하는 경우를 조심해줘야한다.문제를 좀
나는 이 문제 어려웠다. change의 경우를 기존에 map에서 key를 통해 찾아서 그냥 덮어 씌운다는 개념을 생각하지 못했따,,,,,,이 문제는 결국엔 map에다가 해당 id에 맞는 이름을 최종적으로 덮어씌우면서 저장해두고, 다시 한번 record를 돌려서 answ
기본적인 완전탐색의 템플릿 형태를 띈다. 빽트래킹을 설정해주고 for문을 돌려준다.단 , tmp.equals(word) 형태의 빽트래킹이 최우선이 되어야한다. 왜냐하면 tmp.length() == 5 일 경우 빽트래킹을 해버리면 정답을 지나쳐버릴 수도 있기때문이다.이런
0$ -> 문자열 끝($)의 0을 의미짝수짝수인 경우에는 무조건 1의 자리가 0이다. 1의 자리 수를 1로 바꿔주면 문제에 해당되는 수를 찾을 수 있다ex) 2 -> 10 -> 11 -> output data : 3ex) 4 -> 100 -> 101 ->output d
문제 보자마자 어떻게 풀지 조금 생각하는데 5분도 안걸리는 쉬운? 문제였다.코드 구현은 생각보다 복잡해서 20분 정도 걸렸다고 생각한다. 근데 몇몇 테스트 케이스에 대해서 통과를 받지 못했다. 왤까 생각을 해봤는데 , 현재 자리수가 5인 경우에 앞자리가 4면 내려주는게
문제 풀이 피타고라스 방식으로 풀어야겠다고 생각했는데 , 구현 방법이 틀린것같아서 정답 코드를 참고했다......... 정답 코드 간단 하게 , x좌표를 k의 배수만큼 올려주면서 각 x좌표에서의 가능한 y의 크기를 구해서 거기에 해당되는 y의 개수를 추가해줌으로
이 문제 핵심은 자신의 배열은 서로 나누어져야하고, 다른 배열은 그러지 않아야 한다.A배열에서 가진 최대공약수로 B배열에서 아무요소도 나누어지지않아야한다. 또는 B배열에서 가진 최대공약수로 A배열에서 아무요소도 나누어지지않아야한다는 것이다.즉 최대공약수를 가진다는 것은