계수정렬 사용 걸린 시간 해시 사용 걸린 시간
다른 사람 풀이를 보던 와중에 Hash를 사용해서 푼게 보였는데 좋은 풀이 같아서 가져왔습니다.
효율성 부분 코드 수정 전 효율성 부분 코드 수정 후 > 효율성 테스트 탈락 후 참고한 프로그래머스 다른 분의 조언 https://school.programmers.co.kr/questions/21359
내가 작성한 코드보다 더 나은 코드가 있어서 가져옴
DFS 풀이 BFS 풀이
혹시 정책이 변경되는 경우 알려주시면 해당 글을 비공개 처리하도록 하겠습니다 .감사합니다
혹시 정책이 변경되는 경우 알려주시면 해당 글을 비공개 처리하도록 하겠습니다.감사합니다.※ 확인한 글의 출처 : https://career.programmers.co.kr/questions/34688
PriorityQueue를 사용하지 않을 경우 효율성 테스트를 통과하지 못한다.
while문 + String.replace() 사용 [테스트케이스는 모두 통과 / 효율성 테스트 실패] Stack 사용 [테스트케이스는 모두 통과 / 효율성 테스트 통과]
세상에는 나보다 뛰어난 사람이 너무 많다. 그들을 보고 배우되 절망하지 말고 나는 나대로 나아가야 한다.
그리디 라고 해서 그리디로 풀려고 했는데 몇시간 동안 고생해도 답이 안나와서 포기하고 답 확인함문제가 너무 어려워서 풀이를 한참동안 보고 이해한다고 고생했다.※ https://yummy0102.tistory.com/359 참고함
간단하게 풀려면 간단하게 풀 수 있는 문제를 복잡하게 생각하기 시작하니까 끝도 없이 복잡해졌다. 시간은 시간대로 쓰고 문제도 문제대로 제대로 풀지 못한 것 같다. 많이 아쉬운 문제
위키백과 - 에라스토테네스의 채isPrime() 부분을 삭제 => 2에서부터 소수의 곱들을 다 제외하면서 시작하기 때문에 따로 또 소수판별을 할 필요가 없음.
요즘 2022 KAKAO TECH INTERNSHIP 문제들을 풀고 있는데 LV2 인데도 많이 어렵다. 아직 나의 사고력이 좁은게 느껴지고 갈길이 먼 것 같다.
좋은 코드가 있어서 가져왔다. [방향 전환 , 좌표 이동 부분을 잘 살펴볼 것]
원래는 BFS 를 사용하는 문제인데, 나는 감을 못잡아서 그냥 구현으로 풀었다.
StringBuilder를 사용하니 단순 String을 사용할때보다 속도가 약 5배 가량 빨라졌다.정답코드 참고 주소 : https://fbtmdwhd33.tistory.com/249난이도는 그렇게 높지 않았던 것 같은데 조합 구하는 걸 한번 꼬이기 시작하니까
다른 방법으로 풀이 : 규칙을 찾았으면 쉽게 풀수있게 되어있었다. ㅠㅠ
2시간 ~ 3시간 가까이 방법을 찾으려고 했지만 계속해서 실패했고, 결국엔 답안을 보고 풀이를 진행했다. (※나도 완전탐색 + 스택 풀이 방법 스택은 전혀 생각하지 못했고 저런식으로 풀어야지만 생각했음 ㅠㅠ 과 비슷한 알고리즘으로 풀이를 진행하려고 했지만 예외케이스를
info 의 조건들을 set으로 만들고, 해당 조건의 점수들을 List 로 만들어서 set 및 List 를 Key, Value로 하는 map 을 하나 생성그 후에 query를 돌면서 해당하는 조건들을 set으로 만들어서 map에 해당 조건들이 있는지 확인하여 조건이 만
40분 넘게 고민 고민 하다가 도저히 스택으로 못 풀겠어서 에라 모르겠다 하고 2중 for문 완전탐색 으로 풀었는데 효율성이 통과가 되서 놀랐다. 그리고 정답을 찾아보니 해당 문제를 스택으로 푼 사람들이 있어서 아직 갈 길이 멀다고 생각했다.프로그래머스에서 테스트한 효
처음에 그냥 조합으로 풀려고 했는데 오버플로우 때문에 런타임 에러가 계속 발생 , 아무리 생각해도 모르겠어서 정답을 참고하니 DP문제 였다...DP 문제인걸 알고 나서도 이게 왜 DP인지 한참을 고민했던것 같다.나만의 정의를 내려서 DP로 풀기는 했지만 역시 DP는 많
구현 문제에 맞게 풀어서 정답을 맞추긴 했으나 코드가 좀 지저분하다. 깔끔하게 짜면서 기능도 잘 구현하고 싶은데 역시 두개를 동시에 잘 하는건 어려운 것 같다.기능 구현 후 리팩토링을 따로 하는게 맞는거 같은데 ... 조금 귀찮다 ㅎㅎ..
2명만 탈 수 있다는 것은 빨리 봤는데 , 계속해서 최대한 한번에 많은 무게로 보내려고 하다보니 효율성에서 탈락했다.굳이 한번에 최대한의 무게로 보낼 필요 없이 2명만 채우면 되는 거 였는데 이상한 부분에서 시간을 상당히 소모함.
조금만 더 생각을 했으면 더 단순하게 푸는 방법이 있다는 것을 알았을텐데 .. 자식 노드를 세서 바로 비교하는 코드
Hash 사용 아이디어 구현 - 사전순 정렬 후 좌우 옆을 비교
간단한 아이디어만 있었어도 이렇게나 코드가 길어지지 않았을텐데...'>참 많이 아쉬운 코테 문제 이다.
시간은 엄청쓰고 풀지는 못해서 정답을 참고했음해당 블로그 글을 봤으며 설명이 좋다.https://small-stap.tistory.com/40
정답 참고 링크https://wonillism.github.io/programmers/Programmers-3xn-tiling/
첫 풀이 [비효율적] 두번째 풀이 [시간 단축]
DP를 풀때마다 느끼는 점이지만 아무리 생각을 해도 모르겠다가 점화식을 보게되면 뭔가 어이가 없으면서도 허무하다. 아직은 인사이트가 많이 부족한 것 같다정답 코드 참조 : //정답 코드 참조 : https://shanepark.tistory.com/183
n칸을 뛰어야 할때 나올 수 있는 경우의 수경우의 수n-1칸 + 1칸n-2칸 + 1칸 + 1칸 (2칸을 1칸씩 나눠서 뜀)n-2칸 + 2칸 (한번에 2칸)그러므로 n칸을 뛸때 필요한 경우의 수 점화식을 세우면n칸 = (n-1칸 경우의 수) + (n-2칸 경우의 수)\*
제한사항에서 제공되는 제한이 너무 널널해서 완전 탐색으로 풀이를 진행하는게 100배 빠르다.
StringBuilder를 사용하지 않고 그냥 String 끼리 합쳐서 문자열을 만들면 시간 초과가 발생한다.
아침에 풀다보니 머리가 잘 안돌아가서 코드 로직을 이상하게 해서 풀었다.그래서 그후에 다른 분들의 정답 코드 참고 후 다시 로직을 생각해서 조금 더 가독성 있는 코드로 다시 짜봄
이진수 더하기 삼총사
알고리즘을 어떻게 짜는지에 따라 가독성 과 수행속도가 엄청나게 차이가 난다..
369게임 콜라 문제
기본 순서인 1,2,3 으로 내려오는 택배를 defaultOrder로 정의stack을 저장이 가능한 택배인 saveOrder로 정의트럭에 실어야하는 택배의 배열을 wantOrder & wantOrder 인덱스를 wantOrderIdx로 정의wantOrder 와 save
![](https://velog.
객체 만들어서 사용 객체 없이 코드 작성
스스로 문제를 너무 복잡하게 풀었다.복잡하게 풀다보니 시간도 오래 걸림.일단 구현부터 하고나서 리팩토링을 하는게 좋은 습관이다.
놓치기 쉬운 실수인 1은 소수가 아니다 라는 조건을 넣지 않아서 예상외로 고생을 했다.항상 생각하는 것이지만 너무 당연한 것을 당연하게 생각하다보면 실수 하기가 좋은 것 같다.
주어진 센서 거리가 정렬이 되어 있지 않으므로 x축을 기준으로 정렬센서끼리의 거리를 구하고 해당 거리를 정렬거리가 큰 순서대로 정렬하고 jump의 수만큼 거리가 큰 곳을 넘기면 필요한 거리의 합을 구할 수 있다.※ (기지국의 개수 - 1개) 만큼 거리가 넓은 곳을 넘길
LocalDate 쓰는 것보다 일자로 풀어서 푸는게 훨씬 빠르다.
각 자리수에 있는 숫자들을 비교해야한다.숫자가 4이하로 작으면 => 빼는게 이득숫자가 6이상으로 크면 => 더하는게 이득 (그리고 앞자리에 1을 더해줘야함)★★★★★ 판단해야 5는 앞자리를 보고 결정해야함 ★★★★★ 앞 자리가 4이하면 현재 자리수의 5는 빼는게 이득
1차 풀이 2차 풀이 3차 풀이 (정답 참고)
개인 풀이
류호석님의 유튜브 강의 참고 후 내 방식대로 풀이https://youtu.be/DppIIIsR6nk
리팩토링 전 리팩토링 후
내 풀이 - Stack 사용 , 백준에서 비슷한 문제를 풀어봄 다른 사람 풀이 - 배열 사용 - 속도 매움 빠름
정답 참고 후 내가 푼 풀이 다른 사람이 푼 풀이
첫 풀이 코드 리팩토링
난이도 대비해서 런타임 에러 때문에 문제 풀이에 있어서 조금 고생함
링크
Linked List 사용 - 효율성 2번 시간 초과 Array List 사용 - 효율성 2번 시간 초과 LinkedList 와 ArrayList 에서 시간차이가 약 5배 가까이 나는 이유 테스트 결과 - LinkedList 테스트 결과 - ArrayList
처음에 문제를 봤을때 파일이 묶여있는 것 끼리 따로 처리해야 하는 줄 알고 DFS를 사용해서 풀이를 진행했는데 다른 사람들의 풀이를 보니 그냥 모든 좌표를 한번씩만 살펴봐도 풀 수 있는 문제였다. => 문제를 잘 읽어보자.
하노이탑 참 애증의 문제다.저번에 공부할때 정말 열심히 이해하고 풀었는데 간만에 다시 푸니까 하나도 기억이 안난다 ㅎㅎ...대신 이번에 또 한참 고민해서 이제는 다시는 안까먹겠다 다짐을 속으로 해본다 ...핵심 (n개의 원반을 옮기는 법)1\. n개의 원반을 옮기기 위
그냥 공식대로 풀려고 하니까 오버플로우 + 부동소수점 때문에 값이 자꾸 틀리게 나왔다.조금 다른 방식으로 접근을 해야 풀 수 있을 것 같다BigInt를 써도 풀이가 되지만 미리 미리 나누기 및 곱하기를 해줘야 할 것 같다.
다른 답변들을 보니 내꺼에서 더 최적화 할 부분들이 남아있다.
오랜만에 bfs를 풀어서 실수한 부분이 있었는데 그 부분을 찾지 못해서 시간을 좀 많이 썻다.그 실수는 바로 deque에 넣을때 방문처리를 하고 넣었어야 했는데 나중에 꺼내고나서 방문처리를 하는걸로 로직을 짯다가 테이블이 커지면 무조건 메모리 초과가 난다. 중복이 엄청
DFS로 처음에 문제를 풀려고 했다. 근데 아무리 해도 시간초과가 나서 한참을 고민했다. (분명 최단거리 문제를 DFS로 풀수있는데 왜 안될까 ?)결국 정답을 보고 나의 문제점을 알 수 있었다.최단거리는 DFS보다는 BFS로 푸는게 맞다. (평소에 DFS로 문제를 많이
이 문제와 비슷한게 백준의 물통 문제가 있다.좋은 문제이므로 같이 풀어보면 좋을 듯 하다. 이 문제를 풀었던 경험 때문에 해당 문제도 보자마자 BFS로 풀 수 있었다.(※나는 물통 문제 덕분에 코테에 대해서 무언가 조금의 깨달음이 있었다.)
배열 사이즈를 2배로 늘려서 구함 나머지 연산자를 사용해서 풀이
문제최소한의 요격 미사일로 A나라의 미사일을 다 막야함시작 좌표와 끝 좌표에서 쏘는 미사일로는 막을수가 없음해결targets를 정렬 (끝 좌표가 짧은 순으로) -> 시작 좌표는 무조건 끝 좌표보다 이전이므로 볼 필요가 없다.
구현 문제인것 같다.구현도 어려웠는데 조건이 생각보다 까다로워서 코드를 몇번이나 뒤엎고 다시 풀었다. 시간이 상당히 오래 걸렸다. ㅠㅠ
처음에 내가 생각한 로직이 맞기는 했다.dfs 안에 실수로 for문을 하나 더 넣는 바람에 시간을 엄청 썻다.오늘 자꾸 이상한 실수를 많이 한다. 아직 내가 많이 모자르다는 뜻이겠지... 내가 구한 시간복잡도 상으로는 도저히 이렇게 느릴수가 없었는데 왠지 너무 이상했다
주의할점1\. Math.floor 대신에 Math.round 를 쓰면 Integer에 가까운 값이 나오기 때문에 정답이 이상하게 나온다.(예를 들어 Math.round(2.8) 은 2가 아나리 3에 더 가깝기 때문에 3이 나옴, Math.floor(2.8)은 2가 제대
배열을 사용할 때 초기화를 잘 해주자. (INF 값 및 0값 그리고 거리 간의 비용)3중 for문을 돌때 가장 위에 경유지를 설정해야 한다.
답안 참고하여 풀이싸이클을 확인해야 한다는 점까지는 잘 도달했음싸이클을 판단하고 저장하는 방식에서 차이가 나서 나는 메모리 초과가 났다.while보다 dfs 재귀 방식이 더 간편하긴 한 것 같다.
코딩테스트를 위해서 복습 중
처음 아이디어내 왼쪽, 오른쪽 모두에 나보다 작은 숫자가 1개 이상 있으면 개는 지울 수 없는 숫자다핵심 아이디어\-> 배열 최소값을 찾는다.\-> 배열 최소값을 기준으로 왼쪽 끝, 오른쪽 끝에서부터 값 비교를 시작한다.\-> 배열 최소값은 무조건 제일 작은 값이므로,
아이디어A의 순서에 따라 B의 순서를 맞출 수 있으므로, 두 배열의 순서는 마음껏 바꿔도 된다.두 배열을 정렬한다.최대 점수를 위해서는, 최대한 지는 것을 피하고, 다음으로는 비기는게 더 낫고, 최선은 이기는 것A 인덱스, B 인덱스 따라가면서 값을 비교하고 -> 구하
처음에는 단순한 더하기 문제인줄 알고 이게 왜 Medium이지? 했었다. 그런데 자료구조 - 연결리스트에 대한 문제였고, 해당 자료구조에 대해서 이해도가 부족하다면 많이 헷갈릴 수 있겠다 싶었다. -> 헷갈린 사람 == 나C하면서 포인터를 그렇게 했지만, 그렇게나 친숙
복습 문제인데 전에 풀었을때보다 시간이 더 걸렸다. ㅜㅜ3시간 동안 문제를 잡고 있었는데 2시간을 디버깅으로 시간을 썼다. (sout만 찍어서 디버깅 하려니까 정말 어렵다)괜히 전에 풀어봤다고 문제 이해를 제대로 안 하고 풀다가 이상하게 풀이를 진행했고, 그러다보니 디
2일 정도 고민을 했는데, 비슷하게 근접은 했으나 정확하게 답을 맞추진 못했다. 정답 참고 후 혼자서 다시 풀어 봤다.위의 코드를 조금만 다시 생각해보면, 처음에 굳이 한번 전체 탐색할 필요 없이 0번째 시간을 기준 점수로 잡고, 최고점을 가지는 시간을 return 해
처음에 그냥 sources 에서 destination 까지 bfs로 풀었었다. 그렇게 하면 몇개의 케이스에 대해서 시간초과가 난다.\-> destination에서 sources로의 거리를 구하고 해당 값을 return하면 풀이 완료! 다익스트라 사용함다익스트라 사용할때
자기전에 가볍게 한문제 풀고 자기.
간단하게 코딩 테스트 준비 겸 뇌 깨우기
프로그래머스 문제