유클리드 알고리즘두 수의 최대공약수(GCD)를 찾는 효율적인 방법 원리숫자 A와 B에서 A를 B로 나누었을 때, 나머지가 R이라면 A와 B의 최대공약수는 B와 R의 최대공약수와 같다.이 과정을 나머지가 0이 될 때까지 반복하면, 마지막으로 나눈 수가 최대공약수다. ex. 48과 18의 최대공약수 찾기48 ÷ 18 = 2 나머지 12 -> 48과 18의 최대공약수 = 18과 12의 최대공약수18 ÷ 12 = 1 나머지 6 -> 18과 12의 최대공약수 = 12와 6의 최대공약수12 ÷ 6 = 2 나머지 0 -> 나머지가 0이 되었으므로, 6이 최대공약수 구현function findGCD(a, b) { // 음수인 경우 절댓값 사용, 양수인 경우 생략 가능 a = Math.abs(a); b ..
프로그래머스 - 달리기 경주 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 문제 설명과 입출력이 직관적으로 다가와서 쉬운 편이라고 생각했으나..객체와 배열의 특징에 대해 다시 한 번 생각을 정리할 수 있는 문제였다! 문제 첫 시도 (오답)callings.forEach(player => { let curRank = players.indexOf(player); let tmp = players[curRank - 1]; players[curRank - 1] = player; players[curRank] = tmp;});return players; ind..
탐욕 알고리즘이란?말그대로 Greedy하게, 탐욕스럽게 그 때 그 때의 최적의 상황을 쫓아 문제를 해결하는 방법이다.여러 경우 중 하나를 결정해야할 때 그 순간에 최적이라고 생각되는 것을 선택해나가며 최종 해답에 도달한다. 알고리즘을 적용하기 위한 전제 조건1) 탐욕적 선택 속성 (Greedy Choice Property): 앞의 선택이 이후의 선택에 영향을 주지 않는다.2) 최적 부분 구조 (Optimal Substructure): 문제에 대한 최종 해결 방법은 부분 문제에 대한 최적 문제 해결 방법으로 구성된다. 문제 해결 절차1) 선택 절차 (Selection Procedure): 현재 상태에서의 최적의 해답을 선택한다.2) 적절성 검사 (Feasibility Check): 선택된 해가 문제의 조건..
투포인터 알고리즘이란?배열/리스트에서 두개의 인덱스(포인터)를 사용하여 특정 조건을 만족하는 구간을 효율적으로 탐색하기 위한 알고리즘일반적으로 탐색하는 배열/리스트가 정렬되어 있을 때 사용한다. 사용하는 경우1) 일반적으로 두 인덱스를 탐색범위의 시작과 끝으로 사용하여, 탐색 범위 내에서 특정 조건을 만족하는 요소를 찾거나 조건을 만족하는 부분배열을 찾는 데에 사용한다.2) 동일한 인덱스를 시작으로, 한 인덱스를 고정하고 다른 인덱스를 이동시키다가 특정 조건에서 고정한 인덱스도 이동시키며 탐색하는 방법도 사용할 수 있다. 구현 방식1) 배열의 탐색할 위치에 두 포인터를 설정한다.2) 두 포인터 혹은 그 구간을 탐색하고 조건에 일치하는지 확인한다.3) 조건을 만족시키는 경우 탐색을 종료한다.4) 조건을 ..
내 블로그 - 관리자 홈 전환 |
Q
Q
|
---|---|
새 글 쓰기 |
W
W
|
글 수정 (권한 있는 경우) |
E
E
|
---|---|
댓글 영역으로 이동 |
C
C
|
이 페이지의 URL 복사 |
S
S
|
---|---|
맨 위로 이동 |
T
T
|
티스토리 홈 이동 |
H
H
|
단축키 안내 |
Shift + /
⇧ + /
|
* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.