[Programmers] Level 2. 파일명 정렬
·
코딩테스트/Python
🔗 Problem Link 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr ❔Thinking 파일명을 주어진 조건에 따라 정렬한다. HEAD는 한 글자 이상의 문자로 이루어져있고, (" ", ".", "-") 가 가능하다. NUMBER는 한 글자 이상 다섯 글자 이하의 연속된 숫자이다. (공백이 없는 숫자의 나열) TAIL은 나머지로, 조건에 제시된 공백과 마침표, 빼기 부호와 숫자 문자가 모두 가능하다. 파일명은 HEAD -> NUMBER 순으로 기준을 잡아 정렬한다. 모든 정렬 기준이 동일할 경우, 입력된 순서를 유지한다. 💻Solution 1. win..
정규 표현식
·
Python 활용하기
1. 정규 표현식(regex)특정한 규칙의 문자열 집합을 표현하는 데 사용하는 형식 언어2. 정규 표현식 모듈import restring = "aaaa,b,c,e,d"a = re.search('a+', string)print(a.span())3. 정규 표현식 문법표현식의미표현식의미. 1개의 문자[a,b]a,b 중 하나a?0개 또는 1개의 문자 (a가 하나 있거나 없거나)[^ab]a,b 제외a*0개 이상의 문자 (a가 0개 이상)[a-z]a~z사이의 문자a+1개 이상의 문자 (a가 1개 이상)\다음 기호를 문자로 사용^a뒤의 문자로 시작하는 문자열 (a, ab, apple...)\b문자와 공백 사이$a앞의 문자로 끝나는 문자열 (bba, aaa, india...)\B문자와 공백 사이가 아닌 문자a|ba 또..
[LeetCode] 409. Longest Palindrome
·
코딩테스트/Python
🔗 Problem Link Longest Palindrome - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com ❔Thinking 주어진 문자열의 문자들로 만들 수 있는 가장 긴 '펠린드롬 문자열'의 길이를 출력한다. '펠린드롬 문자열'은 가운데를 기준으로 좌우를 뒤집어도 동일한 문자열을 말한다. 모든 문자를 사용하지 않아도 된다. 💻Solution from collections import Counter class Solution: def longestPalin..
[Programmers] Level 2. 땅따먹기
·
코딩테스트/Python
🔗 Problem Link 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr ❔Thinking N행 4열로 이루어진 땅을 차례로 내려오며, 각 칸에 적힌 숫자를 더해 최대로 만든다. 직전 행의 열과 같은 열을 선택할 수 없다. 💻 Solution def solution(land): answer = 0 for i in range(1, len(land)): for j in range(len(land[0])): land[i][j] += max(land[i-1][:j]+land[i-1][j+1:]) return max(land[-1]) 🗝️ keypoint 이전 행..
[Programmers] Level 2. 방문 길이
·
코딩테스트/Python
🔗Problem Link 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr ❔Thinking (0,0) 좌표에서 시작해서 'LRUD'로 이루어진 문자열 명령어에 따라 이동한다. (-5,5) 좌표 안에서 이동한 길이를 출력하되, 이미 지나친 길을 제외하고 출력한다. 경계를 벗어나는 명령어는 무시하며, 이미 지나친 길은 길이에서 제외될 뿐 이동은 한다. 💻Solution def solution(dirs): answer = 0 x,y = 0,0 visited = [] opposite_dir_dict = {'L':'R', 'R':'L', 'U':'D', 'D':'U..
진법 변환
·
Python 활용하기
N진수에 N은 등장하지 않는다! 1. 2/8/16진법 -> 10진법 print(int('0b1010', 2)) # 10 print(int('0o')) 2. 10진법 -> 2/8/16진법 b = bin(10) # '0b1010' o = oct(18) # '0o22' h = hex(33) # '0x21' 3. 10진법 -> N진법 3-1. 재귀함수 import string def convert_notation(number:int, base:int)->int: base_num = string.digits + string.ascii_uppercase q, r = divmod(number, base) if q: return convert_notation(q, base) + number[r] else: number..