분류 전체보기 284

메뉴얼 바이크 입문기 - 1 ( 면허 )

오토바이를 운용하기 위해서는 "운전면허 자격증" 이 필요합니다. 그리고 오토바이의 기종 ( 스펙 ) 에 따라 요구되는 "운전면허 자격증" 이 다릅니다. 아래 내용에 따라 운용하고자 하는 바이크의 스펙에 맞는 자격증을 준비합니다. 2종 소형 면허 - 모든 바이크를 운용할 수 있습니다 원동기 면허 - 125cc ( 배기량 ) 이하의 바이크를 운용할 수 있습니다 - 자동차 수동 면허 ( 보통이 아닙니다 ) 도 위와 같습니다 자동차 보통 면허 - 125cc 이하의 자동 바이크 ( 수동 변속이 요구되지 않는 ) 를 운용할 수 있습니다 필자는 자동차 보통 면허가 준비됐지만, 운용하고자 하는 바이크가 125cc 이상의 변속 ( 메뉴얼 ) 바이크이므로 "2종 소형 면허" 가 필요합니다. 이제 "2종 소형 면허" 를 취..

메뉴얼 바이크 입문기 - 0

안녕하세요. 메뉴얼 바이크 ( 오토바이 ) 에 관심을 갖기 시작해서 구입 및 운용까지 그 과정에서 경험한 수 많은 시행착오들과 정보를 알기 위해 검색하고 답을 찾은 지식을 정리하고자 합니다. 이는 제가 소비한 에너지를 글에 녹아내어 이 포스팅 ( 입문기 ) 의 글들이 누군가의 시간을 절약하고 답을 찾는데 도움이 되기를 바랍니다 :) * 우리 주변에서 흔히 볼 수 있는 오토바이 ( 모터사이클 ) 에서 기어 ( 변속 클러치 ) 를 요구하는 기종들을 묶어 "메뉴얼 바이크" 라고 지칭했습니다. 다양한 취미를 즐기는 필자는 친구로부터 바이크 ( 라이딩 ) 을 하고 있다는 소식을 듣게 됐습니다. 이 때는 큰 관심이 없었으나 무료한 주말, 시간을 풀어내기 위해 여럿 취미들 중 바이크까지 진입하게 됐습니다. 입문기는 ..

[JS] a star algorithm

Graph ( node - edge ) 구조에서 PathFinding 의 해결 방법인 "A star" 의 구현입니다. A* 알고리즘의 구현 예로 2 차원 배열을 자주 사용하는데, wiki 의 pseudocode 를 참고하여 작성했습니다. wiki 에서는 없는 "Visited" 를 두어 탐색을 마친 node 를 재방문하지 않도록 했습니다. heuristic func ( H ) 는 func 로 두어 자유롭게 작성할 수 있습니다. 먼저, Edge 를 두어 노드 사이의 간선의 이동 비용 ( Cost ) 를 두었습니다. 이는 Path 의 재구성 ( 탐색 종료 이후 ) 에도 재사용됩니다. // relation of graph node class Edge { // src, des is Node constructor(..

ACM준비/algospot 2023.06.02

2542. Maximum Subsequence Score

Maximum Subsequence Score - LeetCode Maximum Subsequence Score - LeetCode Can you solve this real interview question? Maximum Subsequence Score - You are given two 0-indexed integer arrays nums1 and nums2 of equal length n and a positive integer k. You must choose a subsequence of indices from nums1 of length k. For chosen indic leetcode.com nums1, nums2 주어진 숫자 배열에서 k 개의 index 를 뽑아, nums1 에서는 총합..

ACM준비/LeetCode 2023.05.25

703. Kth Largest Element in a Stream

Kth Largest Element in a Stream - LeetCode Kth Largest Element in a Stream - LeetCode Can you solve this real interview question? Kth Largest Element in a Stream - Design a class to find the kth largest element in a stream. Note that it is the kth largest element in the sorted order, not the kth distinct element. Implement KthLargest class: leetcode.com 주어지는 배열에서 "k" 번째로 큰 수를 찾는 문제입니다. 큰 수라는 내용에..

ACM준비/LeetCode 2023.05.23

1,2,3 떨어트리기

https://school.programmers.co.kr/learn/courses/30/lessons/150364 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 주어진 트리에서 1, 2, 3 의 공을 내려보내 각 노드가 원하는 값을 갖는 공의 순서를 찾는 문제입니다. 트리를 만드는 과정은 DS 를 구현해서 진행했습니다. 이후 트리의 각 노드에서 순서가 변경되는 로직이 있고 이 부분도 노드 구현에 반영한 flow 함수를 구현했습니다. 처음에는 공의 경우의 수를 따라가며 backtracking ( 가지치기 ) 로 접근했는데 몇몇 케이스에서 "시간 초과" 가..

미로 탈출 명령어

https://school.programmers.co.kr/learn/courses/30/lessons/150365 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 주어진 맵에서 시작 지점과 도착 지점이 주어진 상태로 k 거리로 도달 가능한 경로를 찾는 문제입니다. 최단 거리가 아닌 k 거리의 위치를 찾아야 하고, 도달 가능한 경로 중에서 알파벳 정렬이 가장 빠른 조건이 붙기 때문에 몇 가지 예외 처리가 필요합니다. 우선, dfs 와 같은 탐색을 통하면 k ( 입력 최대 값 ) 이 크기 때문에 시간이 오래 걸릴 수 있습니다. 그것과는 별개로 문제와 주어진 ..

표 병합

https://school.programmers.co.kr/learn/courses/30/lessons/150366 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 구현 문제이다. 표 ( table ) 의 기능들 ( update, replace, merge, unmerge, print ) 을 구현하면 된다. 가장 성능에 민감한 기능은 replace 로 N^2 가 소요된다. 이 부분은 mapping table 을 두어 개선할 수 있지만 문제가 시간 복잡도에 민감하지 않으므로 구현을 가져갈 수 있다. 그 다음으로 merge 기능의 예외 처리가 필요한데 동일 셀..

표현 가능한 이진트리

https://school.programmers.co.kr/learn/courses/30/lessons/150367 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 이진 트리로 구성 가능한지 판단하는 문제이다. 이진 트리를 구성 하는 룰에 따라 LeafNode ( 자식이 없는 마지막 노드 ) 가 있다면, 그 부모의 노드도 있어야 하기에 이진법으로 변환한 값을 보고 부모의 여부를 판단할 수 있다. 입력된 값을 이진법으로 변환한 뒤 인덱싱을 위해 암묵적 ( 문제의 점선 ) 노드를 모두 생성한 뒤 ( white space ) 왼쪽, 오른쪽의 노드가 있으면서 부모..

이모티콘 할인행사

https://school.programmers.co.kr/learn/courses/30/lessons/150368 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 입력 파라미터 값의 제한을 보고 시간 복잡도를 걱정할 문제라고 생각이 안들었다. 시간 복잡도가 필요하다면 좋은 아이디어로 접근해야 한다. 문제 풀이는 전체 경우의 수 ( 최대 4^7 ) 의 케이스에서 Best 를 찾아본다. 할인율은 10, 20, 30, 40 ( 총 4 개 ) 의 케이스이기에 n 개의 이모티콘의 경우의 수를 만들고 ( N ) 유저의 수 ( N ) 에서 이모티콘의 구입과 서비스 가..