[프로그래머스/코딩테스트 연습/Lv.2] 짝지어 제거하기-파이썬(Python)
·
Algorithm, 코딩테스트
문제https://school.programmers.co.kr/learn/courses/30/lessons/12973?language=python3 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 풀이def solution(s): stack = [] for i in s: if stack and stack[-1] == i: stack.pop() else: stack.append(i) return 0 if stack else 1핵심 설명LV.2 올바른 괄호 문제와 상당히 유사한 문제다. 해당 문제와 같은 방식으로 문자열의 앞 문..
[프로그래머스/코딩테스트 연습/Lv.1] 과일 장수-파이썬(Python)
·
Algorithm, 코딩테스트
문제 https://school.programmers.co.kr/learn/courses/30/lessons/135808 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 def solution(k, m, score): answer = 0 score.sort(reverse=True) # 내림차순 정렬 for i,v in enumerate(score): if (i+1)%m==0: # 사과의 (인덱스+1)이 m의 배수일 때 answer+=v*m # 해당 사과가 상자에 담긴 사과들 중 최저점을 가지고 있다. return answer Tip 최대 이익을 내기 ..
[프로그래머스/코딩테스트 연습/Lv.1] 가장 가까운 같은 글자-파이썬(Python)
·
Algorithm, 코딩테스트
문제 https://school.programmers.co.kr/learn/courses/30/lessons/142086 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 def solution(s): answer = [] letters={} # 각 글자의 가장 마지막 위치를 담은 dictionary for i,v in enumerate(s): if not v in letters: # 해당 글자가 letters 안에 없으면 answer.append(-1) # 해당 글자가 처음 나왔기 때문에 자신의 앞에 같은 글자가 없음 else: answer.appen..
[프로그래머스/코딩테스트 연습/Lv.1] 크기가 작은 부분 문자열-파이썬(Python)
·
Algorithm, 코딩테스트
문제 https://school.programmers.co.kr/learn/courses/30/lessons/147355 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 def solution(t, p): answer = 0 p_num = int(p) # p를 정수형으로 변환한 값 for i in range(len(t)-len(p)+1): if int(t[i:i+len(p)])
[프로그래머스/코딩테스트 연습/Lv.2] 소수 찾기-파이썬(Python)
·
Algorithm, 코딩테스트
문제 https://school.programmers.co.kr/learn/courses/30/lessons/42839 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 from itertools import permutations def solution(numbers): possible=set() # 종이 조각을 붙여 만들 수 있는 수들의 집합 for i in range(1,len(numbers)+1): for j in permutations(numbers,i): # 순열 이용 possible.add(int("".join(j))) # 소수가 아닌 수들..
[프로그래머스/코딩테스트 연습/Lv.2] 큰 수 만들기-파이썬(Python)
·
Algorithm, 코딩테스트
문제https://school.programmers.co.kr/learn/courses/30/lessons/42883 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 풀이def solution(number, k): stack=[] # 정답 문자열을 구성하는 문자들이 들어 있는 스택 for i,v in enumerate(number): while k>0 and stack and v>stack[-1]: # 참고하는 문자가 스택의 맨 위 원소보다 크면 반복 stack.pop() # 스택에서 원소를 꺼낸다. ..