[Python] 정규 표현식 메타 문자 문자가 가진 원래 의미가 아닌 특별한 용도로 사용되는 문자 . ^ $ * + ? { } [ ] \ | ( ) import re import re # 문자열의 시작 부분에서 일치하는지 판단 re.match(pattern, string, flags) # match(패턴, 패턴을 찾을 문자열, [옵션]) # match와 비슷하지만, 일치하는 위치를 찾으면서 문자열 훓음 re.search(pattern, string, flags) # search(패턴, 패턴을 찾을 문자열, [옵션]) # 일치하는 모든 부분 문자열을 찾아 리스트로 반환 re.findall(pattern, string, flags) # 일치하는 모든 문자열을 찾아 이터레이터로 반환 re.finditer(pattern, string, f.. 2021. 5. 15.
[Python] Import 위치 Python으로 프로그래머스 문제를 풀다 보면, 모듈을 import 할 때 두 가지의 방법이 있는데 꼭 맨 윗줄에 써야 하는 건지 궁금했다. # 함수 내 모듈 삽입 def solution(num): from collections import deque ... return answer # 함수 밖 모듈 삽입 from collections imort deque def solution(nums): ... return answer 위의 두 방법 중 무엇이 옳고, 무엇이 빠를까..? 검색을 통해 찾아낸 결론은, 모듈은 함수를 여러번 실행해도 한 번만 import 되기 때문에 어디에 사용하든지 상관없다. 모듈 맨 위에서 import를 하게 되면 컴파일러가 LOAD_GLOBAL하는 반면 함수 안에서는 LOAD_FAS.. 2021. 5. 15.
[Programmers] Lv1. 내적 문제 바로가기 코딩테스트 연습 - 내적 길이가 같은 두 1차원 정수 배열 a, b가 매개변수로 주어집니다. a와 b의 내적을 return 하도록 solution 함수를 완성해주세요. 이때, a와 b의 내적은 a[0]*b[0] + a[1]*b[1] + ... + a[n-1]*b[n-1] 입니다. (n은 a, b의 programmers.co.kr 풀이 solution()은 zip을 사용해 각각의 리스트 원소들을 곱한 것의 합을 구함 코드 def solution(a, b): return sum(i * j for (i, j) in zip(a, b)) 2021. 5. 15.
[Programmers] Lv1. 소수 만들기 문제 바로가기 코딩테스트 연습 - 소수 만들기 주어진 숫자 중 3개의 수를 더했을 때 소수가 되는 경우의 개수를 구하려고 합니다. 숫자들이 들어있는 배열 nums가 매개변수로 주어질 때, nums에 있는 숫자들 중 서로 다른 3개를 골라 더했을 때 programmers.co.kr 풀이 primeNumber()는 에라토스테네스의 체를 이용해 소수리스트를 만드는 함수로, 에라토스테네스의 체 연습용 solution()은 combinations라이브러리를 사용해 nums에서 3개를 뽑고, 그 3개의 합이 소수리스트에 들어있으면 +1 코드 # 에라토스테네스의 체 def primeNumber(): lst, prime = [0] * 3001, [] lst[0] = lst[1] = 1 for i in range(2, .. 2021. 5. 15.
[Programmers] Lv1. 음양 더하기 문제 바로가기 코딩테스트 연습 - 음양 더하기 어떤 정수들이 있습니다. 이 정수들의 절댓값을 차례대로 담은 정수 배열 absolutes와 이 정수들의 부호를 차례대로 담은 불리언 배열 signs가 매개변수로 주어집니다. 실제 정수들의 합을 구하여 re programmers.co.kr 풀이 signs가 true면 answer에 더하고, false면 answer에서 뺀다. 코드 def solution(absolutes, signs): answer = 0 for sign in range(len(signs)): if signs[sign]: answer += absolutes[sign] else: answer -= absolutes[sign] return answer 2021. 5. 15.
[과제] FE - 고양이 사진첩 애플리케이션 [프론트엔드] 고양이 사진첩 애플리케이션 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제지 당신은 고양이들을 모시고 있는 어느 집사에게 자신의 고양이 사진을 관리해달라는 의뢰를 받았습니다. 의뢰인은 당신이 믿을만한 사람인지 테스트하기 위해, 약간의 사진을 당신에게 보냈으며 이 사진들을 웹에서 볼 수 있도록 해달라고 합니다. 이 사진을 어떻게 처리할까 고민 중이던 때, 당신의 절친한 친구 Back-end 개발자가 당신을 돕기 위해 의뢰인이 보낸 사진들을 API 형태로 만들어주었습니다. 이 API를 이용해, 의뢰인을 만족시킬 수 있는 고양이 사진첩 애플리.. 2021. 5. 15.
[Programmers] Lv1. 로또의 최고 순위와 최저 순위 문제 바로가기 코딩테스트 연습 - 로또의 최고 순위와 최저 순위 로또 6/45(이하 '로또'로 표기)는 1부터 45까지의 숫자 중 6개를 찍어서 맞히는 대표적인 복권입니다. 아래는 로또의 순위를 정하는 방식입니다. 1 순위 당첨 내용 1 6개 번호가 모두 일치 2 5개 번호 programmers.co.kr 풀이 solution 함수는 0이 6개면 [1, 6]을 반환하고, 아니라면 lottos와 win_nums를 정렬한 후 countAnswer함수를 반환 countAnswer함수는 정렬된 리스트를 돌면서 정답의 개수를 answer_cnt로 구한다. 그리고 rankLotto 함수를 반환 rankLotto함수는 [정답 개수, 정답 개수 + 0의 개수]를 가지고 1~6등을 매기는 함수 코드 def rankLot.. 2021. 5. 14.
[Programmers] Lv1. 모의고사 문제 바로가기 코딩테스트 연습 - 모의고사 수포자는 수학을 포기한 사람의 준말입니다. 수포자 삼인방은 모의고사에 수학 문제를 전부 찍으려 합니다. 수포자는 1번 문제부터 마지막 문제까지 다음과 같이 찍습니다. 1번 수포자가 찍는 programmers.co.kr 풀이 3명의 사람이라서 people의 푸는 방식을 리스트로 만들었다 그리고 score를 미리 [0, 0, 0]으로 초기화해 answers를 돌면서 수포자의 정답과 같으면 score 해당 인덱스를 +1 (여기서, 각 수포자의 정답 길이를 가지고 % 연산을 통해 리스트를 길게 늘이지 않고 정답의 인덱스 계산 가능) 점수 중 최고점을 가지고 answer에 최고점을 가진 수포자의 번호를 추가해준다. 코드 def solution(answers): score.. 2021. 5. 14.
[Programmers] Lv1. 크레인 인형뽑기 게임 문제 바로가기 코딩테스트 연습 - 크레인 인형뽑기 게임 [[0,0,0,0,0],[0,0,1,0,3],[0,2,5,0,1],[4,2,4,4,2],[3,5,1,3,1]] [1,5,3,5,1,2,1,4] 4 programmers.co.kr 풀이 stack을 이용해서 풀었다 moves의 배열을 돌면서 board의 열을 moves원소의 -1로 두고, 행을 board의 길이만큼 돌면서 인형을 찾습니다 그리고 인형을 발견하면 stack에 인형을 쌓고 해당 board의 값을 0으로 만들고 break 그 후 stack의 길이가 1 이상이 되면 같은 인형이 나올 수 있으므로 while문을 stack의 길이가 1 이상일 때로 지정 stack의 마지막 원소와 뒤에서 두 번째 원소가 같은 경우, answer에 없어진 인형의 개.. 2021. 5. 14.
반응형