본문 바로가기

ProblemSolving45

[HackerRank 풀이/python] Encryption (medium) 문제 설명: 다음과 같은 암호화 규칙에 따라 주어진 영문 텍스트를 암호화하시오. 우선, 텍스트에서 띄어쓰기(space) 를 모두 제거한 뒤, 이 텍스트의 길이를 L 이라고 한다. 그 후, 문자들(characters) 을 격자(grid) 형태로 적는다. 격자의 행과 열은 아래와 같은 제한을 따른다. 예를 들어, 텍스트 s = 'if man was meant to stay on the ground god would have given us roots' 가 주어졌을 때, 띄어쓰기를 제거하면 문자열의 길이는 총 54자가 된다. sqrt(54) 는 7 과 8 사이의 수 이므로, 7행 8열인 격자 형태로 적으면 다음과 같다. 참고로, 복수의 격자가 행 x 열 >= L 을 만족해야 하며, 위의 조건을 만족한다면 전체.. 2021. 2. 5.
[LeetCode 풀이/python] 17. Letter Combinations of a Phone Number (medium) 문제 설명: 2에서 9 사이의 숫자로 이루어진 문자열 digit 이 주어졌을 때, 해당 숫자가 나타내는 문자들로 만들 수 있는 모든 문자열 조합을 구하시오. 문자열의 순서는 무관하며, 숫자 - 문자 맵핑은 아래와 같음. 1은 어떤 문자도 가리키지 않는다는 점에 주의할 것.) (Given a string containing digits from 2-9 inclusive, return all possible letter combinations that the number could represent. Return the answer in any order. A mapping of digit to letters (just like on the telephone buttons) is given below. No.. 2021. 2. 5.
[LeetCode 풀이/python] 10. Regular Expression Matching (hard) 문제 설명: 입력 문자열 s 와 패턴 p 가 주어졌을 때, '.' 와 '*' 을 활용하여 정규 표현식 매칭을 구현하시오. 입력 문자열의 (일부가 아닌) 전체를 커버할 수 있어야만 매칭되는 것으로 간주함. ('.' 는 임의의 한 문자에 매칭될 수 있고, '*' 는 선행 요소가 0 개 이상인 것과 매칭됨) (Given an input string (s) and a pattern (p), implement regular expression matching with support for '.' and '*' where: '.' Matches any single character.​​​​ '*' Matches zero or more of the preceding element. The matching should.. 2021. 2. 3.
[LeetCode 풀이/python] 27. Remove Element (easy) 문제 설명: 하나의 배열 nums 와 하나의 값 val 이 입력으로 주어졌을 때, 주어진 값에 해당하는 모든 원소를 'in-place 방식' 으로 제거하고 남은 새로운 배열의 길이를 구하시오. 이 때, 다른 배열을 위한 추가 공간을 할당할 수 없으며, O(1) 의 추가 메모리를 요구하는 'in-place 방식' 을 통해서만 입력 배열을 수정해야 함. 새로운 배열 내 원소들의 순서는 변경 되어도 무관하며, 새로운 배열 길이를 초과하는 부분에 다른 원소들이 남겨져도 됨. (cf. in-place 방식: 추가적인 자료 구조를 할당하지 않고, 대체(replace) 또는 교환(swap) 연산을 통해서만 입력 값을 업데이트 하는 것) (Given an array nums and a value val, remove .. 2021. 1. 31.
[LeetCode 풀이/python] 22. Generate Parentheses (medium) 문제 설명: n 쌍의 괄호가 주어졌을 때, 유효한 괄호 쌍들로만 이루어진 모든 조합을 생성하는 함수를 만드시오. (Given n pairs of parentheses, write a function to generate all combinations of well-formed parentheses.) 예시 1) 입력: n = 3 --> 출력: ["((()))","(()())","(())()","()(())","()()()"] 예시 2) 입력: n = 1 --> 출력: ["()"] 제한 조건: 1 가설 1 기각 해당 케이스를 커버하는 새로운 전략을 놓친걸까? 아니면 아예 새로운 접근법이 필요한걸까? ==> Discussion 페이지에서 상위에 있는 python 코드의 접근법을 참고해보자 :) [풀이 2안 .. 2021. 1. 28.