728x90
- 스택/큐
레벨 1. 같은 숫자는 싫어
https://school.programmers.co.kr/learn/courses/30/lessons/12906?language=python3
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
def solution(arr):
answer = []
answer.append(arr[0])
for i in range(1,len(arr)): #123456
#만약 answer가 있고, answer의 마지막요소가 arr의 뒷수랑 같다면
if answer and answer[-1] == arr[i]:
answer.pop() #없애버리기
answer.append(arr[i]) #그럼 다시 넣기
return answer
- 내가 기억해야되는 점
1. stack의 형태로 풀었다.
2. 배열[-1]은 마지막요소를 뜻한다.
레벨 2. 기능개발
https://school.programmers.co.kr/learn/courses/30/lessons/42586?language=python3
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
from collections import deque
def solution(progresses, speeds): #큐
answer = []
days = deque() # 각 기능이 완료되기까지 걸리는 날 수를 저장하는 리스트
# 각 기능의 완료일 계산
for i in range(len(progresses)):#그래
remaining_work = 100 - progresses[i] #남은잔여작업(100-작업중)
day = (remaining_work + speeds[i] - 1) // speeds[i]
#*올림 계산하는법 (A+B-1)//B
days.append(day)
# 배포 시점에 따라 기능 배포 수 계산
while days:
# 첫 번째 기능이 완료되는 날
deploy_day = days.popleft()
count = 1
# 그 다음 기능들이 함께 배포될 수 있는지 체크
# 현재 대기중인 다음작업(day[0])이 현재배포일에 포함되냐(그래서작은거봄)
while days and days[0] <= deploy_day:
days.popleft()
count += 1
answer.append(count)
return answer
- 내가 기억해야하는 점
1. 이 문제는 큐로 풀어야한다. 보통 어떤 경우에 스택이나 큐로 풀어야할까?
* 스택 :
: 최근의 작업이나 상태를 저장하고 복구해야하는 재귀적 구조 문제 해결, 깊이 우선탐색(DFS)의 경우
: 역순으로 데이터를 처리해야할때(문자열 역순 처리, 이진 트리의 후위순회)
: 중첩된 구조를 관리할때 (함수 호출, 괄호의 짝을 처리할때)
* 큐:
: 은행대기열(순서대로처리), 프로세스 스케쥴링, BFS(너비우선탐색)의 경우
2. 보통 올림계산하는 식
: 'A+B-1//B'라는 식을 이용하곤 한다.
레벨 2. 올바른 괄호
https://school.programmers.co.kr/learn/courses/30/lessons/12909
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
def solution(s):
answer = True
sTextArray = []
for i in s:
if i == '(':
sTextArray.append(i)
else:
if not sTextArray:
answer = False
break
sTextArray.pop()
if sTextArray:
answer = False
return answer
- 이런 괄호문제는 자주나오는거 같으니 익숙해지자!
- 참고로 이번문제도 스택으로 풀었다!
레벨 2. 프로세스
https://school.programmers.co.kr/learn/courses/30/lessons/42587
프로세스 코드
- 냥냥
- 멍멍
- 왈왈
728x90
'이직하고만다(분노)' 카테고리의 다른 글
99클럽 코테 스터디 34일차 TIL + 백준 깊이너비탐색 (0) | 2024.08.24 |
---|---|
99클럽 코테 스터디 33일차 TIL + 리트코드 깊이너비탐색 (0) | 2024.08.24 |
99클럽 코테 스터디 32일차 TIL + 백준 깊이너비탐색 (1) | 2024.08.22 |
99클럽 코테 스터디 31일차 TIL + 백준 깊이너비탐색 (0) | 2024.08.21 |
99클럽 코테 스터디 30일차 TIL + 프로그래머스 이분탐색 (0) | 2024.08.20 |