전체 글 100

[프로그래머스/JavaScript] 숫자 변환하기

https://school.programmers.co.kr/learn/courses/30/lessons/154538 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1) 풀이 이것도 꽤 시간이 걸린 문제.... 사실 푸는 방법은 단순하게 생각해서 풀 수는 있는데 시간초과가 자꾸 나서.. 방법이 뭔지 모르겠어서 ... 한참을 고민했다 그래서 질문하기도 찾아보고, 여러 블로그에서 다른 분들 푸는 방법을 봤는데 일단..dp로 푸는 방법이 있었다 근데 일단 내가 dp에 대해 아직 서툴기도 하고 해서 내가 그나마 자신있는 bfs 방식으로 하기로 했다! 근데 이제 시..

[프로그래머스/JavaScript] 아이템 줍기

https://school.programmers.co.kr/learn/courses/30/lessons/87694 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1) 풀이 며칠동안 푼 문제,,,,, 진짜 개에바임 🥹 사실 처음 문제 보고 bfs 로 그냥 풀면 되겠다 싶어서 쉽게 풀릴줄 알았는데 생각보다 오래 걸려서 맘고생을 좀 했다 처음에는 이 방법으로 했다 1. 50x50 board, visitied 각각의 2차원 배열을 생성 2. 그냥 말그대로 중첩 for 문 돌면서 모든 도형 1로 board 배열에 찍기 3. board 를 순회해서, 1로 되어있는 ..

[프로그래머스/JavaScript] 최고의 집합

https://school.programmers.co.kr/learn/courses/30/lessons/12938 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1) 풀이 이거 진짜 하루종일 잡고 있다가 참고자료 찾아보고 바로 풀려서 허무한 문제.. 레벨3 치고는 쉬운 것 같은데, 내가 너무 어렵게 접근한 것 같다 처음에는 '질문하기'를 보았는데 문과인 나는.. 도저히 해석하지를 못했다 ㅠㅅㅠ 대충.. 느낌상 말해보자면 1. 같은 숫자로 나눌 수 있으면 그것이 곱의 최대 2. 같은 숫자로 나눌 수 없으면 최대한 나눈 후 나머지 더해줌 인 것 같은데.. 아..

[프로그래머스/JavaScript] 소수 찾기

https://school.programmers.co.kr/learn/courses/30/lessons/42839 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1) 풀이 소수 찾는 알고리즘 + dfs로 순열 풀듯이 푸는 방식을 사용했다 소수 찾는 알고리즘은 이전에 풀어본 적이 있었고 순열 풀이도 예전 휴학때 해본 적 있으나 잊고 살다가 코테 준비한다고 급하게 풀어보는 중.. 나중에 참고하려고 참고했던 자료를 첨부한다 자료 보면 풀이 이해가기 때문에 따로 적지는 않음! 2) 최종 소스코드 function solution(numbers) { let answ..

[프로그래머스/JavaScript] 최소직사각형

https://school.programmers.co.kr/learn/courses/30/lessons/86491 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1) 풀이 레벨 1인데도 헤맸던 문제..! '질문하기' 에서 팁을 봤는데 '명함을 다 가로로 놓고 본다고 가정해보자..!' 라는 말이 있어서 참고했다 즉, 2차원 배열로 들어가 있는 안의 배열 2개 요소 중 큰 것과 작은 것을 구분해서 각각 특정 인덱스로 분리해놓고 큰 값을 모아놓은 인덱스끼리 주르륵, 작은 값 모아놓은 인덱스끼리 주르륵 비교해서 각각에서의 큰 값을 곱해서 return 해주면 된다..

[프로그래머스/JavaScript] 베스트앨범

https://school.programmers.co.kr/learn/courses/30/lessons/42579 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1) 풀이 1. Map 자료형 sort mapToArray.sort((a, b) => b[1] - a[1]); // value값 기준 내림차순정렬 mapToArray.sort((a, b) => b[0] - a[0]); // key값 기준 내림차순정렬 mapToArray.sort((a, b) => a[1] - b[1]); // value값 기준 오름차순정렬 mapToArray.sort((a, b) ..

[프로그래머스/JavaScript] 타겟 넘버

https://school.programmers.co.kr/learn/courses/30/lessons/43165 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1) 풀이 이런 문제 은근 많이 풀어봤다고 생각했는데 생각보다 시간이 오래 걸렸던 문제,, 시험기간 끝나고 처음 푸는 알고리즘 문제라 그런지 많이 버벅였다,, 일단 메인 아이디어는, numbers 라는 배열을 따라가면서 그 요소 하나하나를 더한 경우와 뺀 경우 두가지를 다른 배열에 넣고 그 다음 요소로 넘어가 방금 넣어주었던 요소들에 더하고 빼고... 이렇게 반복하는 것! 요소들을 더하고 빼고 넣..

[자료구조] 해시(Hash) 충돌이란?

Hash 충돌이란? 해시함수의 입력값은 무한하지만, 출력값의 가짓수는 유한(출력값, 즉 키가 유한하지 않다면 해시기법을 사용하는 의미가 없다.)하므로 해시 충돌은 반드시 발생한다.(비둘기집 원리) 위의 그림에서 Sandra Dee라는 사람의 연락처를 삽입하는 상황을 가정해보자. Sandra Dee라는 키는 John Smith라는 키와 결과값이 같다. 둘 사이에 충돌이 일어난 것이다. 그러자 충돌이 일어난 주소(혹은 색인)의 bucket에 레코드가 추가로 담긴 것을 확인할 수 있다. 만약에 해당 bucket에 충분한 공간이 없다면? 오버플로우가 발생한다. 이러한 해시 충돌을 해결하는 방법에는 여러가지가 있다. 1. 체이닝(Chaining) 버켓 내에 연결리스트(Linked List)를 할당하여, 버켓에 데..

[자료구조] 힙(Heap) 자료구조란 ?

1) 힙(Heap) 이란 특성 우선순위 큐를 위해 만들어진 자료구조 💡우선순위 큐(Priority Queue) 더보기 우선순위의 개념을 큐에 도입한 자료구조 데이터들이 우선순위를 가지고 있어 우선순위가 높은 데이터가 먼저 나간다! 완전 이진 트리의 일종으로, 우선순위 큐를 위하여 만들어진 자료구조 💡 완전 이진트리 더보기 1) 완전 이진트리는 마지막 레벨을 제외 하고 모든 레벨이 완전히 채워져 있다. 2) 마지막 레벨은 꽉 차 있지 않아도 되지만, 노드가 왼쪽에서 오른쪽으로 채워져야 한다 여러 값 중, 최대값과 최소값을 빠르게 찾아내도록 만들어진 자료구조로 반정렬 상태(느슨한 정렬 상태) 큰 값이 상위 레벨에 있고 작은 값이 하위 레벨에 있다는 정도 간단히 말하면 부모 노드의 키 값이 자식 노드의 키 값..

[프로그래머스/JavaScript] 멀리 뛰기

https://school.programmers.co.kr/learn/courses/30/lessons/12914 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1) 풀이 거의 며칠동안 풀던 문제.. 계속 재귀함수로 풀어보고, 재귀함수가 너무 오래 걸리나? 해서 While문으로도 풀어보고 하다가 도저히 안 돼서 찾아보니 다이나믹 프로그래밍(동적 프로그래밍) 의 점화식을 이용해서 풀면 되는 문제였다. 동적 프로그래밍을 이용하여 점화식을 세운 다음, 메모이제이션 기법을 사용하면 간단하게 풀렸다 메모이제이션 기법이란, 이전에 계산한 값을 저장해놓고 그 값이 필..

728x90