본문 바로가기

Algorithm & World Class

(39)
(Algorithm) Microsoft Online Assessment Questions a game of dominos consists of 28 domino tiles. between 0 and 6 dots appear at each end of every tile. Tiles can be reversed during the game, so the tile showing "2-3" can be played as "3-2". You are given a list of N unique domino tiles. Your task is to find any domino tile not on the list and return it in the format "X-Y", where X and Y are digit representing the number of dots on each end of t..
(Algorithm) Microsoft Online Assessment Questions You are given an array S consisting of N strings. Every string is of the same length M. Your task is to find a pair of strings in array S, such that there exists a position in which both of the strings have the same letter. Both the index in array S and the positions in the strings are numbered from zero. For example, given S = ["abc", "bca", "dbe"], string 0 ("abc") and string 2 ("dbe") have th..
(프로그래머스 LV.2) 방문 길이 구하기 문제 설명 게임 캐릭터를 4가지 명령어를 통해 움직이려 합니다. 명령어는 다음과 같습니다. U: 위쪽으로 한 칸 가기 D: 아래쪽으로 한 칸 가기 R: 오른쪽으로 한 칸 가기 L: 왼쪽으로 한 칸 가기 캐릭터는 좌표평면의 (0, 0) 위치에서 시작합니다. 좌표평면의 경계는 왼쪽 위(-5, 5), 왼쪽 아래(-5, -5), 오른쪽 위(5, 5), 오른쪽 아래(5, -5)로 이루어져 있습니다. 예를 들어, "ULURRDLLU"로 명령했다면 1번 명령어부터 7번 명령어까지 다음과 같이 움직입니다. 8번 명령어부터 9번 명령어까지 다음과 같이 움직입니다. 이때, 우리는 게임 캐릭터가 지나간 길 중 캐릭터가 처음 걸어본 길의 길이를 구하려고 합니다. 예를 들어 위의 예시에서 게임 캐릭터가 움직인 길이는 9이지만,..
[알고리즘] isIsogram 문제 문자열을 입력받아 아이소그램인지 여부를 리턴해야 합니다. 아이소그램(isogram)은 각 알파벳을 한번씩만 이용해서 만든 단어나 문구를 말합니다. 입력 인자 1 : str string 타입의 공백이 없는 알파벳 문자열 출력 boolean 타입을 리턴해야 합니다. 주의 사항 빈 문자열을 입력받은 경우, true를 리턴해야 합니다. 대소문자는 구별하지 않습니다. 입출력 예시 let output = isIsogram('aba'); console.log(output); // false output = isIsogram('Dermatoglyphics'); console.log(output); // true output = isIsogram('moOse'); console.log(output); // fals..
[알고리즘] 06_[순열] 새로운 치킨 소스 레시피 새로운 치킨 소스 레시피 문제 개업 이래로 항상 승승장구하는 '승승장구 치킨집'의 비결은 소스에 있다. 수많은 타사 브랜드 치킨집들이 승승장구 치킨집의 소스 비결을 알아내려고 했으나 빈번히 포기했다. 그 이유는 5대째 내려오는 '비밀의 승승장구 치킨 소스 비율 레시피'는 70억 인구 중 사장님만 알고 있기 때문이다. 최근, 누리꾼 사이에서 이 레시피의 일부분을 발췌했다는 소문을 듣게 되었다. 그 소문은 다음과 같다. N 가지의 재료 중에 단 M 가지만을 사용하여 조합한 모든 경우의 수 중 하나이다. 재료는 0과 1로만 이루어진 숫자로 암호화가 되어 있고, 항상 1로 시작하며 복호화를 할 수 없다. 단, 0이 3개 이상인 재료는 상한 재료이기 때문에 제외한다. 재료의 순서에 따라 맛이 달라지기 때문에, 재..
[알고리즘] 05_[중복순열] 가위바위보 rockPaperScissors 문제 가위바위보 게임은 2인 이상의 사람이 동시에 '가위, 바위, 보'를 외치고 동시에 가위, 바위 또는 보 중에서 한 가지를 의미하는 손 모양을 내밀어 승부를 결정짓는 게임입니다. 세 판의 가위바위보 게임을 할 경우, 한 사람은 세 번의 선택(예. 가위, 가위, 보)을 할 수 있습니다. 세 번의 선택으로 가능한 모든 경우의 수를 구하는 함수를 작성합니다. 입력 없음 출력 2차원 배열(arr[i])을 리턴해야 합니다. arr[i]는 전체 경우의 수 중 한 가지 경우(총 세 번의 선택)를 의미하는 배열입니다. arr[i]는 'rock', 'paper', 'scissors' 중 한 가지 이상을 요소로 갖는 배열입니다. arr[i].length는 3 주의사항 최종적으로 리턴되는..
고차함수 - 함수 결합시 익명함수로 호출 후 다른 함수 호출시 인자 전달하는 형태 제목이 길다. 제목이 곧 내용이다. 고차함수를 복습하며 2개 이상의 함수가 결함되고 거기에 인자까지 전달되는 형태일 때 코드의 구조는 낯설다. 그런데 새로운 메소드를 만드는 경우, 기존 메소드를 사용해서 구현할 때 이러한 형태는 간결한 코드를 짜는데 도움을 준다. 형태 1 : caller 함수의 변수에 인자를 직접 전달하는 방식 function compose(func1, func2, num) { return func1(func2(num)); } 형태 2: 콜백함수에 인자를 넣어주는 방식. 익명함수의 형태로 콜백함수에 인자를 전달했다. function compose2(func1, func2) { return function(num) { return func1(func2(num)); } } 형태 3: 1과 ..
(알고리즘) BFS/DFS 그래프 탐색 목적 : 모든 정점(vertex)들을 한 번씩 방문(탐색)하는 것 그래프의 데이터는 배열처럼 정렬되어 있지 않기 때문에 원하는 자료를 찾기 위해서 하나씩 모두 방문해야 한다. BFS(Breadth-First-Search: 너비 우선 탐색) 시작점에서 가장 가까운 depth의 정점을 순서대로 방문. 주로 두 정점 사이의 최단 경로를 찾을 때 사용 만약, 경로를 하나씩 전부 방문한다면, 최악의 경우에는 모든 경로를 다 탐색해야할 수도 있다. 알고리즘 구현 : 큐를 이용해 다음에 탐색할 노드 저장. 노드 수가 많을수록 더 큰 저장 공간이 필요 DFS(Depth-First-Search: 깊이 우선 탐색) 하나의 경로를 끝가지 탐색한 후, 목표 도착지가 없다면 다음 경로로 넘어가 탐색. 하나의 노선을..