코딩 공부를 하면서 알고리즘, 자료구조를 공부 하는데 너무 막히는 부분이 많고 벽도 느껴지기 떄문에 천천히 새로 공부를 하고자 만들 게시글이다.Math.floor(2.11) = 2소수점을 제거해 주는 함수이다.Math.ceil(2.11) = 3올림 처리해주는 함수이다.
역시 알고리즘 문제는 엄청 다양한거 같다..이런식으로 해결하는 문제는 처음 본 거 같다.. 이것을 공부하길 잘한것 같다!!
이 글을 작성하면서 풀었던 파트중 가장 어려웠던 파트였다..대부분 강의를 참고했던것 같다.먼가 풀수 있을꺼 같으면서도 못푼 문제들이 많았ㄷ.내가푼 코드이다.일단 string으로 만들고 for문을 돌리고 다시 number로 만들고 해서 굉장히 복잡한 코드라고 생각한다..
이 부분 문제는 사실 비효율적으로 해결하고자 하면 얼마든지 해결할수 있었지만 효율적인 코드는 무엇인지를 배울수 있는 코드이다.결과적으로 정말 좋은 해결법이라고 생각하고 많이 배웠다.대부분의 문제를 해결하지 못했다;;처음 내가 하던 방법을 사용하지 않아야 했기 때문에 많
아마 가장 많이 쓰이는 자료구조일지 않을까 싶다.가장 어려웠던 문제 였던것 같다.어떤식으로 해결해야 할지도 감이 안와서.. ㅠㅠ이 문제는 해결할듯 못한 문제이다 .. ㅠ이문제 또한 완전 감을 못잡았다.. ㅠㅠ후위식이라는 것이 뭔지를 몰라서이 파트에서 문제는 사실 모두
사실 sort를 사용하면 간편하게 되지만 직접 정렬을 하는 방법이다..For 문을 통해서 가장 작은값부터 앞으로 꺼내오는 방법이다.선택 정렬에 비해서 비효율적인 정렬법이라고 생각한다.하나하나를 다음 인덱스와 비교해서 크기가 크면 바꿔주는 방법이다.가장 큰 차이점은 효율
내가 가장 부족하다고 생각하는 부분이다.아마 대부분의 사람들이 그러겠지만 재귀는 너무 그림이 그려지지 않고 어렵다고 생각한다.. ㅠㅠ그래서 거의 대부분의 문제는 못풀꺼라고 생각이 든다...그래도 노력은 해볼 것이다!!강사님은 재귀함수가 어렵고 복잡하다는 생각에서 벗어날
언제쯤 재귀게 익숙해 질까... 이쯤되면 생각보다는 감각으로 재귀를 푸는 것이 아닐까라는 생각이 든다 ㅠDFS함수 안에 있는 return은 무시한다.아직도 어떻게 작동을 하는지가 잘 그려지지 않는다...일단 값을 찾게되면 재귀를 그만 돌려야 하기 떄문에 flag변수를
유클리드 호재법에 관한 문제이다.나는 일단 이런 부분은 몰랐기 떄문에 재귀로 해결을 하려고 하엿다.재귀로 부분 집합을 표현할수 있기 떄문에내가 짠 코드이다.결과적으로는 테스트를 통과 하지 못했다..flag는 필요가 없다 깜빡하고 지우지 못했다.부분 집합으로 들어오는 값
비교적 쉽게 해결을 했던 것 같다.문자열을 배열로 나누어서 저장을 하였다.splice(" ")이후 빈배열에 값을 넣어주는데첫번쨰 글자는 대문자 나머지 글자는 소문자로 변환하여 넣어주면 된다.그렇게 되면 배열에 앞글자가 대문자인 글자들만 남게되고그것을 이제 문자열로 반환
for문을 여러개 사용해야 한다고 생각을 하여서 초반에 다른방법이 없지 않을까 고민을 했었다.재귀도 결국 For문을 돌리는 것이기 떄문에 해결을 한다면 할수 있다고 생각은 한다시도는 하지 않았다... 재귀는 너무 익숙치가 않아서, 안될수도 있겠지...??어쩃든 해결을
여러분 풀어본 문제이다.재귀로도 해결할수 있는 문제이지만이런 코드가 훨씬 간단한것 같다.많이 해본 문제기 떄문에 부가 설명은 하지 않는다!!
일단 해답부터 보겟다.굉장히 간단하다. 한쪽은 오름차순, 한쪽은 내림차순으로 먼저 정렬한 뒤에 앞에서부터 값을 곱한뒤 그 값을 계속 누적해 주면된다.이렇게 되면 가장 작은값 \* 가장 큰 값을 곱한 값이 나오기 떄문에 무조건 최소값이 된다.내가 짠 코드이다.사실 sor
이 문제 또한 어렵지 않았다.split를 통해서 일단 문자열을 배열로 만들어 주었고Math를 통해서 최대값과 최소값을 알아온 뒤에answer에 공백을 주어서 추가한 문자열을 return해주었다.answer에 넣지 않고 바로 return에 더한값을 입력해 주어도 된다.
단순하게 이중 for문을 돌면서 값을 더하고 해당 값이 맞으면 추가하고 코드이다.처음에 break를 적용하지 않아서 오류가 났다.실제로 break를 적용하지 않아도 답은 나오게 된다.하지만 효율청 체크가 있어가지고 값이 일정값보다 크게 되면 break해주어야 한다.
스터디 및 개인적으로 공부를 하면서 자료구조에 대해서 좀더 알아보는 시간을 가질수가 있었다그중 반복해서 등장하는 문제가 DP문제인데 Dp문제는 항상 해결하지 못했다...이 문제도 효율성에서 떨어지고 말았따.. ㅠ내가 짜본 코드이다.사실 max,indexof등을 사용하지
처음애 내가 짜본 코드이다재귀적으로 2진수를 구해보았다.이때에는 나는 toString이라는 것을 몰랐다... ㅠㅠ그래서 이렇게 재귀로 2진수를 구하였다하지만 결국 문제를 해결 하지 못했다재귀로 문제를 풀게되면 저함수를 재활용 하는 것이 어려웠다..다음 숫자를 넣고 싶은
처음에 문제 이해가 조금 어려워서 힘들었다..문제를 잘못 이해해서 t까지만 숫자를 돌린다고 생각을 했다.하지만 문제는 t만큼 말하면 끝내라는 말이였다.또 한가지 이코드가 완성되기전에 오류가 뜨던때가 있었는데바로 첫번쨰 입출력이다.나의 코드는 일단 for문을 다 돌아야
출처 : https://velog.io/@proshy/프로그래머스JS파일명-정렬풀지 못한 문제이다...내가 생각했던 방법은 숫자만을 추출한뒤 기존 객체의 순서를 바꾸는 방법을 생각했다.사실 좀더 고민해봤다면 풀수도...? 있었을 것이라고 생각하는데지금 정리하면
생각보다 쉽게 해결을 하였다.일단 무조건 값을 넣은뒤에 수정을 하는 편을 좋아해서 일단 값을 넣어주었다.그뒤 값이 만약 )라면 일단 집어 넣은뒤에 뺴주었다사실 다른 방식으로도 집어넣이전에 i+1의 값을 미리 확인하여 값을 안넣고 그냥 뺴줄수도 있다.그후 남아있는 값이
내가쓴 코드정답 코드일단 문제는 해결하지 못했다...알파벳과 번호를 객체로 만들어서 나와 같이 없으면 넣어주고 하는 방식은 똑같다.하지만 나 같은 경우에는 이걸 어떻게 유도리있게?? 순서대로?? 로직이 작동을 하게 짜야하는 부분에서머리가 돌아가지 않아서 막혀서 해결을
처음 보는 문제고 어떻게 해결을 할지 모르겠어 가지고 검색을 통해 해결을 하였다..검색을 계속 해서 어떤 곳이든지 다 이렇게 풀이를 했다;;이게 그냥 정해져 있는 방식인것 같다.일단 기준점을 잡고 왼쪽, 위, 왼쪽위를 비교한뒤 가장 작은값을 추출하고 1을 더한값을 부여
재귀를 돌리면 해결할수 있는 문제로 별다른 추가 사항은 없는 듯 싶다.추가로 배울수 있는 코드이다.순열에 관한 코드로 중복을 허용하는 것을 말한다.개인적으로 굳이 ch라는 변수를 사용하지 않아도 해결할수 있지 않을까 라는 생각을 한다.해보았는데 안되네;; ㅎㅎ앞서 작성
일단 나의 풀이는 for문ㅇ르 사용한뒤 다중으로 if문을 사용하는 방법이였다.다른 것은 없지만 확실히 이 코드가 매우 간단한것 같다..우리가 필요한 것은 경로를 따져야 한다.나는 이부분에서 결국 해결을 하지 못했다..일단 기본적으로 Set을 사용하셔서 중복을 제거를 해
내가 푼 방법이 효율적인 방법인지는 몰라도 일단 우선적으로 해결은 하였다.일단 처음에는 for문 하나에서 해결을 하려고 했다.하지만 생각대로 돼지 않아서 일단 skill_trees에 있는 값중 skill에 있는 값만 순서대로 또다른 배열에 저장을 하였다.그러면 이렇게
어.. 어느 순간부터 막 문제만 해결하려고 하면 문제를 해결 할수가 없게 되엇다..ㅠㅠ확실히 알고리즘, 자료구조를 정확히 알고 어떻게 풀어야 할지를 알아야 한다.그냥 막 풀면 문제 자체를 해결 할수가 없다.. ㅠㅠ내가 작성한 코드는 그냥 일단 처음에 1칸 이동하면 나머
개인적으로 알고리즘이 가장 어렵다고 느껴져서 14일동안 진행되는 leet코드 연습을 시작 하였다.우리가 알고 있는 탐색이다.하지만 효율성을 고려하여 배열을 전체적으로 탐색 하는 것은 안되고 log n만큼만 탐색을 진행 하여야 한다.일단 중간값을 비교를 하면서 중간의 i
두가지 문제를 풀어보았지만 한가지는 해결을 하지 못했다.일단 첫번쨰 문제는 별다른 어려움 없으니 바로 넘어 가도록 하겠다.두번쨰 문제가 어려웟다.처음에는 unshift, pop를 이용해서 for문을 돌렸지만타임 에러가 떠서 좀더 수정을 해보았다.사진을 보면 알수 있듯이
재귀로써도 해결해 볼수 있는 문제 같다.while문이 들어가면 재귀로도 해결할수 있다고 생각한다.일단 익숙한 while문으로 해결을 해보았고별다른 어려움 점은 없었던것 같다DFS함수는 단순히 들어오는 값중 1의 값만을 추출해 해당 값의 길이를 return 해주는 함수이
정렬에 관련해서 문제를 많이 푸는 것 같다.첫번쨰 문제 같은 경우에는 또다른 배열을 만들어서는 안된다는 조건이 있기 떄문에 값을 저장하고 맨앞에있는 0의 index를 기억하는 변수를 한개 만들어서 활용을 하였다.두번쨰 문제 같은 경우에는 문제는 해결 하였지만 효율적이지
나에게는 제법 난이도 있는 문제중 하나이다.저번에 DFS글이 배열을 다루는 것이였다면이번 글은 그래프를 다루는 글이 될것 이다.아마 알고리즘을 나와 같이 처음 접하고 문제를 푸는 사람이라면 이런 문제에서 손도 못댈 것 같다..나도 그랬다.현재는 어느정도 느낌을 잡고 푸
생각보다 이해를 한다면 코드로 구현하기는 쉽다.나는 이해가 조금 걸려서 좀 오래 걸렸다..ㅠㅠ일단 캐시 안에 값이 있다, 없다로 따로 처리를 해주어야 하고우선적으로 안에 있는 값이 최대 담을수 있는 값인지를 확인해 주어야 한다.최대 담을수 있는 상태라면 뺴준뒤에 담아야
하루 밀려가지고... 5일차에 한번에 해결을 하였다.솔직히 대부분 문제는 어렵지 않아서 쉽게 쉽게 쉽게 해결을 한다.무슨 설명을 해야 할지 모르겠네... 걍 쉽게 쉽게 모두 해결 하였다!
오늘은 두문제 모두 해결하지 못했다... ㅠㅠMap을 잘 사용하지를 않아서.. 해결하기 못했고charCodeAt또한 잘 사용하지 않아서 해결하지 못했다..첫번쨰 문제이다.기본적으로 중복을 허용하지 않은 Map의 성질을 이용하여 해당 값이 있다면 따로 배열을 처리를 해주
일정한 규칙이 있는 문제이다.나 같은 경우에는 재귀와 Map을 통해서 해결을 하려고 했지만 맘처럼 결과가 나오지는 못해서결국 해결을 하지 못했다.. ㅠㅠ해답 코드이다.생각보다 굉장히 간단하다는 것을 알수가 있다.우리가 주의깊게 봐야하는 점은앞글자의 알파벳이 바뀔떄 어떠
BFS에 관한 문제를 정리 하였다.BFS는 주로 최단 거리를 찾을때에 사용한다.기본적으로 구현한 코드이다.어렵지 않으니 이런식이라고만 이해를 하자.첫번쨰 노드와 연결된 모든 값을 확인하면서 진행하는 알고리즘이다.다른 방법으로도 해결할수 있다고 생각하는 문제이지만 BFS
최근에 배운 그래프를 통한 DFS를 활용하는 코드이다.나같은 경우에는 run time error가 발생 하였는데 아마 비효율적인 코드가 들어있기 떄문일 것이다.for문일 돌기 떄문에합격을 한 코드이다.먼저 단순히 해당 값이 가능한지부터 확인을 하고 그후 DFS를 실행시
오랜만에 프로그래머스 문제를 풀어봤다.아직 완벽하지 않아서 감이 있다고는 할 수는 없지만 블록체인 이론 공부만 죽어라 하다보니 못풀었다.사실 알고리즘 공부만 할떄 풀었어도 못풀었을 것이다;; ㅋㅋ출처 : https://dev-note-97.tistory.com
음... 개인적으로 상당히 어려웠다dy라는 배열을 활용하여 DP알고리즘과 같이 값을 계속 최신값으로 바꾸어 주는 로직이다.이해하기 좀 어려웠지만 후에 이해가 되었던 문제이고 이전의 값중 가장 큰 값을 활용하는 로직이다.LIS알고리즘의 대표 문제이다.저번에 한번 해결을
처음에 내가 풀어보려 했던 코드정렬한뒤 값을 미리 확인하고 틀릴경우 break를 하는 경우이다.이 경우는 배열을 전체적으로 돌기 떄문에 문제를 해결 하지 못한 코드이다.문제 해결 조건이 효율적이어야 해결이 되나 보다.그래서 수정을 하였다.이걸 뭐라고 불렀는데...양사이
일단 무작정 풀이는 해결 하엿다.위쪽의 코드가 나의 코드이고 아래쪽의 코드가 구글링을 참고한 코드이다.생각한 코드는 같지만 나 같은 경우에는 좀더 직관적인 것을 좋아하다보니 변수를 많이 선언해 버렷다;; ㅠㅠ그런점에서 차이가 있고 나머지 부분은 비슷하지만indexOf를
코드스테이츠 문제를 풀다가 좀 잘 이해가 되어서 따로 정리를 해본다.문제는 연속되지 않는 부분 배열중에 완전 오름차순일 경우 가장 큰 길이를 도출해라 라는 문제이다.즉 보기가 저렇게 주어지면 정답의 배열은 3,10,20이 될 것이다.왜냐하면 오름차순도 이루어 져야 하기
구글링을 몇번 하면서 나랑 좀 비슷한 성격의 코드를 가져왔다.이후 내 입맛대로 조금 수정하였다.일단 이 문제를 풀떄에는 형태를 직각삼각형으로 생각을 하면 편하다.나는 그런 생각을 못해서;; ㅠㅠ그렇게 되어서 인자를 하나씩 넣어주면 된다.인자를 넣는 방향은 반시계방향을
일단 나의 코드이다.2문제에서 시간초과가 발생을 하였다.일단 기본적으로 1씩 증가시킨뒤에 그것을 2진법으로 변환시켜줘서 기존의 값과 비교를 하였다.이때 2진법으로 변환한 값이 길이가 다르면 안되기 떄문에 길이를 먼저 비교를 해준뒤에 for문을 돌려 주었다.그후 비교를
일단 결론적으로는 아직 여러개의 테스트 중에서 두개가 통과가 안되었다 ㅠㅠ내가 생각했던 로직은 이렇다.일단 while문을 통해서 계속해서 값을 체크해 나간다.0,0부터 비교를 해나가며처음에 arr이라는 변수에 조건에 일치하는 값을 담게 된다.이곳에서는 이제 특정 지점에
이떄까지 배운 과정을 통해서 좀 쉽게 해결을 했다.그러다 보니 뿌듯했다 내가 이렇게 까지 해결을 할수 있었구나 라는 생각이 들 정도였으니...^^일단 DFS함수를 보자DFS함수에서 temp라는 배열에는 dungeous라는 배열의 인자값들이 들어가게 된다.그러면 temp
DFS를 통해서 모든 배열을 나열해 보려고 하였다.이전과 비슷하게 하지만 생각대로 되지 않아서 결국 풀지 못하고 다른분의 코드를 참고 하였다.이 문제는 stack으로 해결 해야 한다고 한다.일단 stack에 담기전에 검사 부터 해야 한다.처음 값을 일단 담기게 된다.그
굉장히 굉장히 굉장히 간단하게 생각하면 해결할 수 있는 문제였다..ㅠㅠ우리가 이 문제를 해결할떄 알고 기본적인 전제는 brown + yellow는 전체 배열의 갯수가 된다는 점이다.나같은 경우에는 일단 yellow에 기준을 맞춰서 어떻게 풀어보려고 했다..ㅠㅠ하지만 그
처음 이 문제를 접했을떄 상당히 난감했다.왜냐하면 조건을 어떻게 잡아야 할지 생각이 나지 않았기 떄문이다.처음에 일단 무작정 짜본 코드이다.이떄 if문을 통해서 검증을 하고 답을 도출해 내려고 했지만이러한 방법으로는 해결 할 수가 없는 문제였다.다른 방식으로 문제를 풀
이런식의 큐 문제는 상당히 많다.이런 문제를 풀때에는 일단 기본적으로처음에 기초설정을 할지 vs 아니면 처음부터 바로 반복문을 돌릴지를 선택해야 한다.나 같은 경우에는 기초 설정을 하였다.queueSum 은 다리에 있는 트럭의 총 무게를 종합하고 있고나머지 변수들도 이
처음 내가 작성한 코드이다...나는 일단 closet이라는 부분에 옷 종류에 따라 옷을 정리하였고 그후 옷의 조합을 모두 세야 한다고 생각을 해서 DFS를 돌렸다.하지만 시간초과 및 테스트 실패가 떠서 결국 해결하지 못하고 구글링을 하엿다.구글링 결과는 충격적이였다..
일단 결과적으로 문제를 해결하지 못하고 구글리을 통해 코드를 가져왔다.이 코드는 일단 DP를 활용하여 문제를 해결 하였다.나는 2차원 배열을 통해서 문제를 해결하려고 했지만 해결을 하지 못했고...ㅠㅠ사실 이 부분은 나중에 다시 도전해볼 것이다.이분 같은 경우에는 qu
내 코드는 상당히 간단하다.book이라는 객체에 값들을 저장하고 이제 예시로 들어오는 값들을 모두 확인하는 것이다.테스트 적인 면에서는 모두 합격을 하였지만 효율적인 면에서는 모두 실패를 하엿다 ㅠㅠ그래서 잠시 쉬면서 어떻게 하면 효율적으로 코드를 짤수 있을까 고민을
그렇게 많이 어렵게 느껴지지는 않았다.검증을 하는 부분 즉 search함수 부분이 좀 비효율적이기는 하지만그래도 뭐 나름 만족을 한다.로직이 진행되는 과정은 간단하다.search함수는 들어오는 배열의 괄호형태가 맞는지를 확인하고 처리를 해준다.이후 search내부 변수
일단 2단계가 맞는지..ㅠㅠ구글링을 통해 받아온 코드이다.기본적으로 나와 비슷한 생각으로 해결을 하셨다.나같은 경우에도 특정 변수에 값을 넣은뒤에 최소성을 처리해 주려고 했는데나는 최소성을 해결하는 부분을 짜지 못해서 실패 하였다...answer에 저장되는 값은 나와는
처음에는 대진표 배열을 만들어서 수정해 가면서 해결을 하려고했다.하지만 조건사항에 대진표의 크기가 매우 클 수도 있다는 조건이 있어가지고 이런식으로 해결을 하는 것이 아니라고 생각을 하였다.그래서 다른식으로 해결이 가능하며 이러한 문제는 간단한 법칙이 있다는것으로 생각
처음에 DFS로 풀어보았다.나는 개인적으로는 DFS가 더 편하기 떄문에 DFS로 해결을 해보았지만 역시나 최단거리를 구하는 문제이기 떄문에 효율적인 측면에서 실패가 되었다.즉 BFS를 통해서 해결을 해야 한다는 것이다.BFS는 그렇게 익숙하지가 않아서 작성을 하는데에
어... 기본적으로 예시로 주어지는 테스트들은 통과를 하였지만 최종 테스트에서 합격을 하지 못했다.permutaion함수는 쉽게 말해서 경우의 수를 도출 해낸다.이후 해당값을 숫자로 바꾸어서 소수를 판별하고0,1,2도 각자 소수인지를 판별해야 하기 때문에 판별을 하는
개인적으로 순열을 만드는데에 큰 어려움을 느끼고 있어서...순열을 만드는 코드를 따로 구해와 보았다.들어오는 arr인자는 순열의 기본이 되는 배열이 들어오게되고반환되는 값은 순열이 만들어진 배열이 된다.필요할떄마다 참고하기 위해 글로 남겨두는 것이다!!