전체 글
-
알고리즘) 프로그래머스 Graph, 사이클 제거알고리즘/프로그래머스 고득점 Kit 2020. 5. 1. 15:37
프로그래머스 고득점Kit - Graph 사이클 제거 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 노드의 사이즈를 돌면서 하나씩 제거하고 사이클이 있는지 없는지 체크했다. 결과적으로 정확성 테스트는 다 맞지만, Cycle을 확인하는 메소드를 재귀로 호출하여 효율성은 다 틀린 것 같다. 이후 이 문제를 푼 분들의 로직을 보면서 가장 매력적인 로직을 찾아냈다. 전체 노드의 갯수 -1 개가 되면 사이클이 없다는 것이다. 다만, 컴포넌트의 갯수가 1개가 아닌 2개~n개일 때는 컴포넌트의 갯수도 같이 세줘야 한다는 것이다. 이 로직에 따라 코드를 짜봤지만, ..
-
알고리즘) 프로그래머스 Graph, 순위알고리즘/프로그래머스 고득점 Kit 2020. 4. 27. 16:14
프로그래머스 고득점 Kit - Graph 순위 풀이 (2020.04.27) 문제의 조건에서 경기 결과에 모순이 없으며, A>B, B>C 이면 항상 A>B>C의 순서가 매겨진다고 되어있다. 따라서, 경기 결과가 유실되어도 특정 선수(A)가 이긴 상대들은 A를 이긴 상대들이 이길 수 있다는 뜻이다. 경기 결과 입력 후, 서로 상관관계에 따라 입력을 해주고 랭킹을 부여할 수 있는 선수들을 찾아 return했다. 1. 전체 경기 결과를 이긴 상대 리스트, 진 상대 리스트에 담아준다. (선수 Index에 맞춰서) 2. 서로 경기 결과에 대해 이기고 진 상대들을 업데이트 해준다. 3. 경기 결과가 모두 있는 선수들은 Rank를 부여할 수 있으므로, 전체 경기 결과가 있는 선수들의 수를 return해준다. (2020..
-
알고리즘) 프로그래머스 Graph, 가장 먼 노드알고리즘/프로그래머스 고득점 Kit 2020. 4. 25. 15:50
프로그래머스 고득점 Kit - Graph 가장 먼 노드 풀이 2020.04.25) 그래프를 이용해 푸는 문제다. 이에 LinkedList와 PriorityQueue(우선순위 큐)를 이용해 BFS로 문제를 풀었다. 마지막 depth의 노드 수를 구하는 것이기 때문에 BFS가 적절하다고 생각됐다. 1. 루트인 1부터 시작해서 연결된 노드를 탐색한다. 2. 우선순위 큐에 depth를 기준으로 정렬해서 BFS 탐색을 할 수 있도록한다. 이때, visit을 남겨서 depth를 설정할 수 있게 도왔다. 3. depth별로 노드의 수를 세면서, depth가 깊어질 때마다 노드의 수를 0으로 초기화 시켜줬다. 4. 마지막 depth에서 while문을 탈출하면서 노드의 수를 센 result가 return될 수 있게 설정..
-
알고리즘) 프로그래머스 BinarySearch, 징검다리알고리즘/프로그래머스 고득점 Kit 2020. 4. 25. 15:35
프로그래머스 고득점 Kit - Binary Search(이분 검색, 이진 검색) 징검다리 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 이분 검색에서 mid값은 문제에서 요구하는 답으로 설정하는 것이 기본이다. 이 문제에서 원하는 답은 n개의 바위를 제거한 뒤 각 지점 사이의 거리의 최솟값이다. 따라서 left와 right, mid는 거리로 설정한다. 1. 돌위치를 돌면서 이전 돌과 거리를 비교한다. 2. 구한 거리가 가정 답안인 mid보다 작으면 최솟값이 mid가 될 수 없으므로 돌을 제거해준다. (counting을 해줌) 3. 거리가 크거나 같다..
-
프론트엔드 개발자를 위한 JS - 2장Java Script/프론트앤드 개발자를 위한 자바스크립트 2020. 4. 24. 18:44
2장. HTML속의 자바스크립트 ● ▲ 코드는 위에서부터 차례로 순차해석, 함수 정의가 먼저 해석되어 인터프리터 환경 내부에 저장됨. "를 쓸 수 없음. "); } ▲ 문자열""는 script를 닫는 태그로 인식돼서 error 발생. 이러한 경우 "/" 를 앞에 붙여 이스케이프해서 사용. ▲ 코드 정상 작동 ○ 외부 JS 코드 (External Javascript) - 작성되어있는 js파일 불러옴. ※ Internal JS와 External JS를 동시에 사용하면, 브라우저는 Script 파일을 내려받아 실행하며 Internal 코드는 무시함. ○ defer와 async를 제외하고는 script 요소는 페이지에 나타난 순서대로 실행. ○ ○ defer를 이용해서 페이지 전체를 파싱한 후에 스크립트를 실행..
-
알고리즘) 프로그래머스 BinarySearch, 입국심사알고리즘/프로그래머스 고득점 Kit 2020. 4. 24. 00:37
프로그래머스 고득점 Kit - Binary Search(이분 검색, 이진 검색) 입국심사 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 이분 검색에 대한 이해가 완전히 되지 않아서 다른 분들의 로직을 보고, '아! 이렇게 하는거였지' 느꼈다.. 갈길이 아직도 멀다... 제한사항 입국심사를 기다리는 사람은 1명 이상 1,000,000,000명 이하입니다.각 심사관이 한 명을 심사하는데 걸리는 시간은 1분 이상 1,000,000,000분 이하입니다.심사관은 1명 이상 100,000명 이하입니다. 제한사항을 따로 적은 이유는 주로 데이터 타입과 대략적인 ..
-
알고리즘) 프로그래머스 BinarySearch, 예산알고리즘/프로그래머스 고득점 Kit 2020. 4. 24. 00:06
프로그래머스 고득점 Kit - Binary Search(이분 검색, 이진 검색) 예산 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr (2020.04.24) 풀이1 이진 탐색(Binary Search)라는 생각없이 푼 풀이다. 사실 문제를 보고 이진 탐색을 써야지!! 이런 느낌이 안들어서 자연스럽게 푼 문제다. 로직은 아주 간단하다. 1. 예산의 액수에 따라 오름차순으로 도시를 정렬해준다. 2. 남은 예산으로 평균을 구했을 때 해당 도시의 예산 요청액이 더 적으면 허가해준다. 3. 만약, 요청한 예산이 남은 예산을 나눠줄 수 있는 금액보다 크다면 남은 총액..
-
프론트엔드 개발자를 위한 JS - 1장Java Script/프론트앤드 개발자를 위한 자바스크립트 2020. 4. 22. 17:54
1장. 자바스크립트란 무엇인가 자바스크립트의 구현 => ECMAScript(코어), DOM(문서 객체 모델), BOM (브라우저 객체 모델) ECMAScript 웹 브라우저는 ECMAScript를 구현하는 '호스트 환경'일 뿐이다. ECMAScript 언어에는 입/출력 메소드가 없다. 표준 준수 모든 타입, 값, 객체, 프로퍼티, 함수, 문법, 시맨틱을 ECMA-262에 따라 구현해야함 유니코드 문자 표준을 지원해야함 DOM (Document Object Model) XML을 HTML에서 사용할 수 있도록 확장한 애플리케이션 프로그래밍 인터페이스(API). DOM의 트리를 통해 문서의 콘텐츠와 구조를 자유롭게 수정할 수 있다. 전체 페이지를 노드의 계층 구조로 변환 Hello World! ▼ 위의 코드를..