etc
-
프로그래머스 - 쇠막대기 (JavaScript)etc/coding test 2020. 5. 5. 14:43
문제 : https://programmers.co.kr/learn/courses/30/lessons/42585 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 해결 과정 1) 처음 시도한 방법 -> 테스트 케이스 1개가 시간초과 1) 쇠막대기를 보관하는 스택을 만든다. 2) input으로 들어온 string을 순환한다. 2-1) "(" 인 경우 2-1-1) 다음 인덱스에 ")"이 나온다? -> 레이저 2-1-2) 스택에 남아있는 모든 막대기에 레이저를 추가한다. 다음인덱스까지 확인했으므로 i+=1 해줌 2-1-2) 레이저가 아니라면 새로운 쇠막대기의 ..
-
프로그래머스 - 문자열 압축 (JavaScript)etc/coding test 2020. 5. 4. 08:30
문제: https://programmers.co.kr/learn/courses/30/lessons/60057 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 해결 과정 1개씩 자르고 길이 확인 2개씩 자르고 길이 확인 3개씩 자르고 길이 확인 ... 위의 과정을 최대로 자를 수 있는 길이인 string.length/2 한 후 소수점 이하는 버린 값까지 반복한다. Ex. 길이가 5인 string이면 최대로 자를 수 있는 길이는 2다. 1. 자를 수 있는 길이를 1부터 max까지 반복하면서 2. 문자열을 압축하고 그 길이가 최소값이면 answer를 교체한..
-
[Java vs JavaScript] Array(배열) 뭐가 다를까?etc/computer science 2020. 4. 29. 00:11
대충 자바를 먼저 배우고, 자바스크립트를 배웠는데 1. 자바는 배열을 선언할 때 크기를 정해서 선언한다. 자바에는 리스트라는 배열과 비슷한데 다른 자료구조가 있다. 2. 자바스크립트는 크기를 정하지 않고 그냥 선언한다. 이름은 배열인데 마치 자바의 리스트같은 느낌이다. 3. 자바스크립트는 타입을 여러 개 섞어 쓸 수 있다는 거 당시에 처음 자바스크립트를 하면서 생각한 건 저게 전부였는데, 도대체 어떤 차이가 있는 건지 자바를 다 까먹은 지금,,, 기억이 안 나서 여기 저기 찾아보고 정리하려고 한다. 우선 배열이 정확하게 뭔지 짚고 넘어가자. 배열이란? 객체 자료형의 하나로, 하나의 변수에 여러 개의 값을 저장할 수 있는 자료형이다. 배열은 객체이기 때문에 속성(객체가 가진 값)과 메소드(객체가 실행하는 ..
-
Array(배열) vs Linked List (연결리스트) 비교etc/computer science 2020. 4. 28. 23:58
배열이란? (링크) Linked List란? (링크) 자료구조를 공부할 때 꼭 내가 쓰는 언어를 생각하다 보니까 배열을 자꾸 자바스크립트 배열로 생각하려고 하니까 헷갈렸다. 자바스크립트는 일반적인 배열의 정의에서 벗어나기 때문이다. Ex. 길이가 고정 되어있지 않음 등 자료구조로서 배열과 연결리스트를 비교해보자. 1) 메모리 (제목을 뭐라고 지어야할지...) 실제 메모리상에서 배열은 "연결된" 하나의 블록으로 저장되고, 연결리스트는 독립적으로 저장하되 다음 노드의 위치를 참조한다. 아주 큰 데이터를 저장하려고 하면 메모리에 그 큰 데이터를 하나의 연결된 블록으로 저장할 수 없을 수도 있다. 결국 이렇게 메모리를 사용하기 때문에 배열은 처음부터 정해진 크기를 갖는 것이다. 만약 배열을 사용하다가 메모리가 ..
-
프로그래머스 - 튜플 (JavaScript)etc/coding test 2020. 4. 28. 09:45
문제:https://programmers.co.kr/learn/courses/30/lessons/64065 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 해결 과정 처음에 문제를 잘못 이해해서 튜플을 나타내는 집합의 요소 중 가장 긴 게 곧 튜플인 줄 알았다.. 집합으로 각 요소의 위치를 확인할 수 있으려면 집합의 크기가1인 것부터 차례대로 확인해야 했음 인풋이 string이기 때문에 원하는 모양을 만드는 게 조금 복잡했다. 1. 인풋을 배열로 쪼갠다. 2. 배열을 정렬한다. 3. 정렬된 배열을 순환하면서 튜플을 채운다. 코드 function sol..
-
프로그래머스 - 124 나라의 숫자 (JavaScript)etc/coding test 2020. 4. 27. 20:33
문제 : https://programmers.co.kr/learn/courses/30/lessons/12899 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 해결 과정 처음 생각한 모양은 이랬다.. 그래서 너비우선탐색으로 푸는 건가? 했는데,, 코드를 어떻게 짜야 할 지 감이 안 왔다;; 깊이우선탐색은 많이 풀어봐서 재귀로 만들겠는데.. 너비우선탐색은 어떻게... 하는거지..? 그래서 일단 규칙을 생각해보려고 노력했다. depth가 1일 때는 3까지 표현할 수 있고, depth가 2일 때는 3 + 9 해서 12까지 표현할 수 있고, depth가 3일..
-
프로그래머스 - 탑 (JavaScript)etc/coding test 2020. 4. 26. 18:07
문제: https://programmers.co.kr/learn/courses/30/lessons/42588 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 해결 과정 1. heights 배열을 순환한다. 2. 현재 인덱스에서 왼쪽으로 순환하면서 탑의 높이가 높은 탑을 찾는다. 3. 없을 경우 0을 삽입 코드 function solution(heights) { var answer = []; for (let i = 0; i = 0; j--) { if (heights[j..
-
프로그래머스 - 타겟 넘버 (JavaScript)etc/coding test 2020. 4. 23. 20:46
문제:https://programmers.co.kr/learn/courses/30/lessons/43165 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 해결 과정 모든 원소를 사용해야하는데 숫자는 더하거나 빼는 2가지 경우의 수가 있다. 모든 원소를 더하거나 빼보는 모든 경우의 수를 탐색하지 않고 타겟넘버를 구할 수 있는 방법은 생각이 나지 않아서 깊이우선탐색으로 모든 케이스를 탐색하기로 했다. 1. 현재 몇 개까지 계산했는지 확인하는 count랑 계산된 값 sum을 매개변수로 하는 재귀함수를 작성 2. 더하거나 빼는 경우의 수를 확인하기 위해 재..