알고리즘

알고리즘/Type Challenges

18 - Length of Tuple

출처: Type Challenges, https://github.com/type-challenges/type-challenges/blob/main/README.ko.md 18 - Length of Tuple 배열(튜플)을 받아 길이를 반환하는 제네릭 Length를 구현하세요. type tesla = ['tesla', 'model 3', 'model X', 'model Y'] type spaceX = ['FALCON 9', 'FALCON HEAVY', 'DRAGON', 'STARSHIP', 'HUMAN SPACEFLIGHT'] type teslaLength = Length // expected 4 type spaceXLength = Length // expected 5 풀이 type Length = T['..

알고리즘/Type Challenges

14 - First of Array

출처: Type Challenges, https://github.com/type-challenges/type-challenges/blob/main/README.ko.md 14 - First of Array 배열(튜플) `T`를 받아 첫 원소의 타입을 반환하는 제네릭 `First`를 구현하세요. type arr1 = ['a', 'b', 'c'] type arr2 = [3, 2, 1] type head1 = First // expected to be 'a' type head2 = First // expected to be 3 풀이 type First = T extends [infer U, ...unknown] ? U : never `infer`는 `extends`와 함께 쓰이며 타입을 추출해서 뒤에서 다시 ..

알고리즘/Type Challenges

11 - Tuple to Object

출처: Type Challenges, https://github.com/type-challenges/type-challenges/blob/main/README.ko.md 11 - Tuple to Object 배열(튜플)을 받아, 각 원소의 값을 key/value로 갖는 오브젝트 타입을 반환하는 타입을 구현하세요. const tuple = ['tesla', 'model 3', 'model X', 'model Y'] as const type result = TupleToObject // expected { tesla: 'tesla', 'model 3': 'model 3', 'model X': 'model X', 'model Y': 'model Y'} 풀이 type TupleToObject = { [P in ..

알고리즘/Type Challenges

7 - Readonly

출처: Type Challenges, https://github.com/type-challenges/type-challenges/blob/main/README.ko.md 7 - Readonly T의 모든 프로퍼티를 읽기 전용(재할당 불가)으로 바꾸는 내장 제네릭 Readonly를 이를 사용하지 않고 구현하세요. interface Todo { title: string description: string } const todo: MyReadonly = { title: "Hey", description: "foobar" } todo.title = "Hello" // Error: cannot reassign a readonly property todo.description = "barFoo" // Error: ..

알고리즘/Type Challenges

4 - Pick

출처: Type Challenges, https://github.com/type-challenges/type-challenges/blob/main/README.ko.md 4 - Pick T에서 K 프로퍼티만 선택해 새로운 오브젝트 타입을 만드는 내장 제네릭 Pick을 이를 사용하지 않고 구현하세요. interface Todo { title: string description: string completed: boolean } type TodoPreview = MyPick const todo: TodoPreview = { title: 'Clean room', completed: false, } 풀이 type MyPick = { [Property in K]: T[Property]; } K가 T 타입의 key..

알고리즘/Type Challenges

13 - Hello World

출처: Type Challenges, 13 - Hello World 13 - Hello World Hello, World! Type Challenges에서는 타입 단언(assertion)을 하기 위해 자체적인 타입 시스템을 사용합니다. 이 과제에서는, 아래의 코드를 변경해서 테스트 코드를 통과하세요. (타입 체크 에러 없음). // string이 되어야 합니다. type HelloWorld = any // 아래의 테스트가 통과하도록 만드세요. type test = Expect 풀이 type HelloWorld = string

알고리즘/Python

[pypy] 백준 16235 - 나무 재테크

출처 : 백준, https://www.acmicpc.net/problem/16235 16235번: 나무 재테크 부동산 투자로 억대의 돈을 번 상도는 최근 N×N 크기의 땅을 구매했다. 상도는 손쉬운 땅 관리를 위해 땅을 1×1 크기의 칸으로 나누어 놓았다. 각각의 칸은 (r, c)로 나타내며, r은 가장 위에서부터 www.acmicpc.net # 같은 곳에 여러 개의 나무가 심어질 수 있다. # 모든 나무는 나이를 한 살 씩만 먹는다. # 새로 추가되는 모든 나무의 나이는 1살이다. # NxN의 격자에 M개의 나무를 심어서 K년 동안 키울 것 # 나무 좌표의 r, c는 1부터 시작 # 모든 칸은 처음에 양분이 5만큼 들어있음 # 봄 # 나무는 땅에서 나이만큼의 양분을 먹고 나이 + 1 # 하나의 칸에 여..

알고리즘/Python

[python] 프로그래머스 - 삼각 달팽이

출처 : 프로그래머스, https://school.programmers.co.kr/learn/courses/30/lessons/68645 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 더보기 먼저, 생각해야 할 부분 1. 규칙 찾기 각 행을 내려가면서 행 내의 모든 숫자를 배열에 추가하면 좋겠지만, 그럴 수 있는 규칙은 보이지 않는다.즉, 일일이 구현해야하는데, 달팽이 모양을 따라가면서 쉽게 구현하기 위한 규칙을 찾아보자. 풀이 def solution(n): triangle = [[0 for _ in range(i + 1)] for i in range(n..

알고리즘/Python

[python] 프로그래머스 - 택배 배달과 수거하기

출처 : 프로그래머스, https://school.programmers.co.kr/learn/courses/30/lessons/150369 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr # n개의 집에서 i번째 집은 i만큼 떨어져있고 모든 집은 일자로 놓여있음. # 트럭에는 cap개 싣을 수 있다. # 모든 집에 배달/수거해야하는 택배 개수를 알고 있다. # 모든 택배를 보내고 수거하는데 드는 최소 이동 거리 더보기 풀이 def solution(cap, n, deliveries, pickups): answer = 0 while True: while del..

알고리즘/Python

[python] 백준 1062 - 가르침

출처 : 백준, https://www.acmicpc.net/problem/1062 1062번: 가르침 첫째 줄에 단어의 개수 N과 K가 주어진다. N은 50보다 작거나 같은 자연수이고, K는 26보다 작거나 같은 자연수 또는 0이다. 둘째 줄부터 N개의 줄에 남극 언어의 단어가 주어진다. 단어는 영어 소문 www.acmicpc.net # n개의 단어가 있고 k개의 글자를 가르칠 거임 # 모든 단어는 anta로 시작하고, tica로 끝남. # 단어 내의 모든 글자를 알고 있다면 단어를 읽을 수 있음. # 1

알고리즘/Python

[python] 프로그래머스 - 베스트앨범

출처 : 프로그래머스, https://school.programmers.co.kr/learn/courses/30/lessons/42579 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr # 많이 플레이된 장르순 -> 장르 내에서 가장 많이 플레이된 노래 순으로 2개 수록 # 같은 경우 idx가 작은 것부터 수록 더보기 먼저, 생각해야 할 부분 1. 많이 플레이된 장르 순으로, 장르 내에서 플레이 수가 상위 2개인 노래를 담아야한다. 이를 위해서는 장르별 플레이수, 장르별 플레이 순으로 정렬된 노래가 필요하다. 위 둘을 구하면, 플레이 수가 많은 장르를 가져..

알고리즘/Python

[python] 백준 1654 - 랜선 자르기

출처 : 백준, https://www.acmicpc.net/problem/1654 1654번: 랜선 자르기 첫째 줄에는 오영식이 이미 가지고 있는 랜선의 개수 K, 그리고 필요한 랜선의 개수 N이 입력된다. K는 1이상 10,000이하의 정수이고, N은 1이상 1,000,000이하의 정수이다. 그리고 항상 K ≦ N 이다. 그 www.acmicpc.net # 주어진 끈 들은 동일한 길이로 잘라 목표 개수만큼 만들어야한다. # 길이와 목표 개수가 주어질 때, 목표 개수로 만들 수 있는 잘린 길이의 최대 길이를 구하시오. # 가진 랜선의 개수 1

제주도랏맨
'알고리즘' 카테고리의 글 목록 (2 Page)