문제 내 풀이 폰켓몬의 여러 순서에 대한 뽑기나, 경우의 수를 따지는 것이 아니라 return 해야할 포켓몬의 종류만 따지면 되기 때문에 set을 통한 중복을 제거 -> len과 비교후에 최솟값 최대한 반환을 하면 되는 문제였다. 다른 사람 풀이
문제 >##### 팁! 배열의 값세서 객체에 넣는방법 내 풀이 처음엔 객체를 활용하여서 값들을 cnt 해주는 방법을 했다가 효율성에서 아무런 점수도 받지 못하고 굳이? 라는 생각이 들어서 더욱 편하고 단순하게 접근하기로 했다. 내가 너무 중복이라는 키워드에 꽂혀서 그것을 없애려고만 생각했다보니, 그것이 아니라 조금 쉽게 배열을 정렬 후 하나하나 비교해...
원래 프로그래머스에는 JS 풀이가 없지만HashTable의 가장 좋은 예시인 것 같아 JS 푼 방법이다
우선 어떤 옷을 입느냐가 중요한 것이 아닌 몇 가지수의 옷이 있는 지가 중요 그래서 객체에 갯수를 세준 다음 다 곱하고 -1 해주면 된다.(아무 의상도 착용하지 않은 경우)
어렵지는 않았던 문제지만 인덱스를 자칫하면 헷갈릴 수도 있던 문제다른 사람들의 코드를 보니 map이나 filter, 구조분해 할당을 사용해서 쉽게 푸셨었다. 나중에 시간을 고려해야한다면 꼭 알아둬야할 부분도 있을 것 같다.
문제 내 풀이 우선, 자바스크립트의 sort에 대해서 다시 알아봐야한다. JS의 sort함수는 기본적으로 배열을 String 타입으로 간주하고 비교하기 때문에 [b, c, a] 라는 곳에 sort()를 해주면 자동으로 [a, b, c]가 나오지만 숫자도 마찬 가지로 [90, 110, 100] 이와 같은 경우에서 "90"과 "100"을 비교시 앞자리 9와...
우선 문제를 이해하는데 한참이 걸렸다.. 뭔 소리인지 알아도 예시를 들자하니 또 막히고 결국 찾아보다 좋은 블로그가 있었다.https://www.ibric.org/myboard/read.php?Board=news&id=270333문제를 이해하니 푸는 건 매우
stack을 활용해서 만약 넣을려는 값이 다음에 넣을려는 값과 같다면 그에 해당하는 넣을려는 값은 넣었다 빼주었다. (?)즉, 다음 인덱스의 값과 자신의 값이 달라야만 넣어줌하지만 코드가 만족스럽지 못하고 엥 소리가 나온다..filter를 생각도 해봤지만 정말 간단하고
처음에 생각한 풀이는 주석으로 다음과 같이 남겼었다. 하지만 생각을 해보니 반복일수를 굳이 stack에 담아 배열로 활용할 필요없이 변수로 할용하면 편했었다. 또한, 앞에서부터 완료한 순으로 제거가되니 스택을 활용하는 것이 아니라 큐를 활용하면 더욱 편하게 앞에서부
전형적인 stack, queue문제 하지만 늘 똑같이 풀다가 이상한 점을 한 가지 발견했다. 로직상으로도, 직접 한 개씩 넣어보아도 멀쩡한 코드인데 자꾸 효율성에서 시간 초과가 나왔는데 범인은 === 엄격한 비교 였다. 내 생각엔 문자열을 엄격한 비교시 더 많은 시간이
처음에 거의 2시간을 매달려서 우선순위를 max로 찾아 다른 값으로 치환해 풀다가 생각해보니 여러개의 max값이 있을 떄 그 처리를 해주지 않아 한참을 헤맸다.
전형적인 DFS 문제, 모든 숫자가 (+)인 경우를 탐색한 후 다음 인덱스가 (-)인 경우를 탐색, 더하는 dfs가 먼저 있기 때문이다.여기서의 핵심은 count+1의 값을 전달 해준 것 우리는 dfs(count, sum)에서 dfs(0, 0)을 전달 했으므로 dfs의
https://school.programmers.co.kr/learn/courses/30/lessons/1844원래 이 코드로 접근을 했다가.. 무언가 이상함을 느꼈다.현재는 질문을 보낸 상태
https://school.programmers.co.kr/learn/courses/30/lessons/43162원래 풀었떤 코드이다. 입출력은 모두 통과가 뜨는데 테스트케이스에서 모든 케이스를 통과 하지 않았다.
전형적인 BFS를 활용하는 문제, 처음엔 객체를 활용할까 하다가 좋은 예시가 있어 참고해서 풀었다. 한 가지 주목할 점은 한 개 차이가 난다는 것에 주목하여서 다음 queue에 넣어주는 로직이 참신하다.
문제
한참을 이상하게 풀다가 완전 탐색이라고 백트래킹이니 뭐니 이상한 생각을 했다가 아무래도 기초부터 접근해서 쉽게 푸는 게 나을 거라 생각이 들어 다시 접근했다. sizes의 각 인덱스에서 큰 애들은 큰 곳에 모아두고 작은애들은 작은 곳에 모아둬서 (각 인덱스끼리는 서로
돌아온 2024 코딩테스트 스택/큐 (Lv. 1) 같은 숫자는 싫어 https://school.programmers.co.kr/learn/courses/30/lessons/12906 간단한 문제인데 약간의 트릭이 존재하였다. 그것은 바로 중간에 다른 애가 나온
https://school.programmers.co.kr/learn/courses/30/lessons/1845문제를 최대한 잘잘 읽고 풀어야 했던 것 같다..우리는 최대한 많은 종류를 뽑고 싶어 하지만 마리수와 종류는 아무런 연관이 없다는 게 중요하다극단적인
DFS / BFS를 따지면 드라마에 비유 할 수 있음 한 드라마가 종영 될 때까지 기다렸다가 한번에 본다 -> DFS 여러 드라마를 한편씩 업로드 마다 챙겨본다 -> BFS 대표적으로 이러한 그래프 관련 문제들은 경로 탐색 (최단거리, 시간) 네트워크 (연결)
꿀팁 DP는 다이나믹 프로그래밍 즉, 동적 프로그래밍이라는 뜻을 갖고 있음 아래 정수 삼각형 문제처럼 어떤 경우가 가장 큰 값인지 기억하고 싶을 때 중간중간 그 값을 저장하여 불필요한 연산을 줄이는 것 그런 해결법을 위해서는 2가지가 존재함 1. 메모리를 사용한다
꿀팁 미래를 고려하지 않고 현재 시점에서 가장 좋은 선택 그냥 상남자 알고리즘, 경주마 알고리즘 이라고 생각해도 됨 그리디는 '잔돈 계산문제' 이거 하나로 종결할 수 있음 우리가 현금을 쓸 때 알바분이 10원, 100원짜리로만 잔돈을 주면 당연하게도 지폐를 찾는