ProblemSolving45 [LeetCode 풀이/python] 38. Count and Say (easy) 문제 설명: count-and-say 시퀀스는 아래와 같이 재귀적인 규칙에 의해 정의되는 숫자 문자열이다: countAndSay(1) = "1" countAndSay(n) 은 countAndSay(n-1) 결과인 숫자 문자열을 읽는(say) 방법으로서, 이를 또다른 숫자 문자열로 변환한 것이다. 어떤 숫자 문자열을 어떻게 읽는지(say) 정하기 위해서는, 연속된 동일한 숫자가 하나의 그룹을 이루도록 숫자 문자열을 최소한의 그룹으로 나눈 뒤, 각 그룹에 대해 숫자의 갯수와 숫자를 차례로 읽는다. 읽는 법을 숫자 문자열로 변환하기 위해, 갯수를 숫자로 바꾸고 각 읽는 법을 연결해 붙인다. 예를 들어, 숫자 문자열 "3322251" 의 변환 과정은 다음과 같다: two 3's, three 2's, one 5,.. 2021. 2. 14. [LeetCode 풀이/python] 34. Find First and Last Position of Element in Sorted Array (medium) 문제 설명: 오름차순 정렬된 정수 배열 nums 이 주어졌을 때, 배열 안에서 주어진 target 값이 등장하는 처음과 마지막 위치를 찾으시오. 만약 target 값이 배열 안에 존재하지 않으면, [-1, -1] 을 리턴하시오. + 추가: 시간 복잡도 O(log n) 의 알고리즘을 작성하시오 (Given an array of integers nums sorted in ascending order, find the starting and ending position of a given target value. If target is not found in the array, return [-1, -1]. Follow up: Could you write an algorithm with O(log n) run.. 2021. 2. 14. [LeetCode 풀이/python] 35. Search Insert Position (easy) 문제 설명: 구분되는 (중복이 없는) 정수 값들이 정렬된 배열 nums 과 타겟 값 target 이 주어졌을 때, target 이 배열 안에 존재하면 그 인덱스를 리턴하시오. 배열 안에 존재하지 않는 경우, 만약 정렬 순서에 맞게 타겟 값을 삽입한다면 들어가게 될 위치를 리턴하시오. (Given a sorted array of distinct integers and a target value, return the index if the target is found. If not, return the index where it would be if it were inserted in order.) 예시 1) 입력: nums = [1,3,5,6], target = 5 --> 출력: 2 예시 2) 입력: nu.. 2021. 2. 7. [LeetCode 풀이/python] 31. Next Permutation (medium) 문제 설명: 주어진 숫자 배열 nums 를 사전 편찬 기준 상 바로 다음에 올 숫자가 되도록 재배열하는 함수 next permutation 을 구현하시오. 만약 그러한 재배열이 불가능 하다면, 가장 낮은 순서로 (i.e. 오름차순) 재배열해야 하며, 이 때 재배열은 O(1) 의 추가 메모리만을 사용하여 제자리(in-place) 에서 이루어져야 함. (Implement next permutation, which rearranges numbers into the lexicographically next greater permutation of numbers. If such an arrangement is not possible, it must rearrange it as the lowest possible .. 2021. 2. 6. [HackerRank 풀이/python] Cipher (medium) 문제 설명: 친구 사이인 Jack 과 Daniel 은 대화 내역을 탐정 기관에 도청 당하지 않기 위해 암호화를 하고자 했고, 결국 새로운 암호법을 만들어냈다. 모든 메시지 b 는 이진수 표현(binary representation) 으로 인코딩 하고, 이를 0, 1, ..., k-1 비트만큼씩 이동(shift) 시켜 k 번을 쓴다. 각 열(column) 을 XOR 연산* 처리하면 최종적으로 인코딩된 문자열을 얻게 된다. (*XOR 연산: 이진수 값의 각 자리수를 비교해서 같으면 0, 다르면 1 을 계산하는 비트 연산자) 만약 b = 1001011 , k = 4 인 경우의 예시는 아래와 같다: 이제 우리는 메시지를 해독(decode) 해야 한다. (설명 중략) 이런 식으로 인코딩된 메시지 s 와 키 k 가.. 2021. 2. 5. 이전 1 ··· 5 6 7 8 9 다음