본문 바로가기

Algorithm/기타사이트

(5)
프로그래머스 - 타겟 넘버 타겟 넘버 https://programmers.co.kr/learn/courses/30/lessons/43165?language=javascript ※ 문제 설명은 위 링크 참고 문제 풀이 permutation 과 dfs 그 어딘가에 있는 문제 같다. 주어진 numbers 의 길이 만큼만 + , - 연산을 계속 진행하면 된다. 핵심 dfs 함수는 인자로는 cur, count 두 개를 받고 다음과 같은 의미를 가진다. cur : + , - 연산으로 지금까지 계산한 값 count : 현재까지 사용한 numbers 내의 숫자 개수 function dfs(cur, count) { // numbers 의 length 만큼 탐색했다면 현재까지 계산 된 값이 target 과 일치하는지 확인한다. if(count ==..
위장 분류 : 해시 문제 프로그래머스 - 해시 - 위장 programmers.co.kr/learn/courses/30/lessons/42578?language=javascript 문제 풀이 각 옷의 타입별로 몇가지의 옷들이 있는지 기록한다. => 각 옷의 타입을 key 로 하는 해시맵을 만들면 된다. 해당 옷으로 만들 수 있는 경우의 수를 구한다. 경우의 수를 구하는 것도 매우 간단하다. 각 옷 종류의 개수 + 1 한 값을 모두 곱해준다음에 1을 빼면 된다. 상의 3종류, 하의 2종류, 모자 2 종류가 있다고 하자. A1, A2, A3 , B1, B2, C1, C2 다. 이때 각각의 타입에서 하나씩 고를 수가 있다. 하지만 꼭 모든 옷을 선택해야 하는 것은 아니므로, 각 옷의 타입에는 선택하지 않는 경우도 들..
Gridland Metro https://www.hackerrank.com/challenges/gridland-metro/problem 분류 : Search 문제 설명 n x m 으로 나타낼 수 있는 Gridland 에는 수평 방향의 철길들이 있다. 즉 각각의 철길은 (r, c1, c2) 로 나타낼 수 있다. r 은 row , c1 은 start 지점, c2 는 end 지점을 나타낸다. 철길이 있는 곳을 제외하고 lampost 들을 설치하려고 하는데, 설치할 수 있는 lampost 의 개수는 ? Input 예시 첫 줄에는 n, m, k 가 주어진다. k 는 철길의 개수다. 다음에는 k 개의 철길 정보가 주어진다. 철길 정보는 r , c1, c2 순으로 입력된다. 1 > n >> m >> k; vector input(k); for(..
Lily's Homework 알고리즘 분류 : sorting 문제요약 주어진 배열 arr[] 가 있다. 이 배열의 각각의 원소에 대해 |arr[i] - arr[i-1]| (0 즉 총 2회가 된다. 접근 방식 |arr[i]-arr[i-1]| 합들이 최소라는 것은 (절댓값 기호가 씌어져 있다.) 배열이 정..
[Hackerrank] - Maximum Palindromes 문제 주어진 문자 s 에서 l~r 까지의 index 중 최대 길이의 palindrome 의 개수에 mod 10^9 + 7 한 값을 구해라! ex) S = madamimadam , l = 4, r = 7 S 의 l~r 문자열은 amim 해당 문자열에서 만들 수 있는 최대 길이의 palindrome 은 mam, mim 으로 총 2개! 여기서의 답은 2 가 됨 알고리즘 분류 Strings (medium) 사전지식 순열 모듈러 역원 ( 나눗셈 mod 연산) 순열은 우리가 알고 있는 nCr 공식 나머지 모듈러 연산 저 C 가 10^9 + 7 이 된다. 참고로 해당 수는 prime 이 때 B 의 역원을 구할 때 페르마의 소정리가 이용됨 풀이 ※ 해커랭크 discussion 에 올려놓은 코드를 참고 사전 작업 1. ..