알고리즘

알고리즘

[프로그래머스 / Java] 전화번호 목록

🔎 문제 : 공원 산책https://school.programmers.co.kr/learn/courses/30/lessons/42577?language=java 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr  📍 정리전화번호부에 한 번호가 다른 번호의 접두어라면 false 반환, 접두어가 존재하지 않는다면 true 반환 💡 풀이 과정1️⃣ 접두사 Map 만들기// Map phone_head = new HashMap();for(int i=0; i 2️⃣ 접두사가 존재하는지 탐색하기for(int i=0; i  👩🏻‍💻 전체코드import java.ut..

알고리즘

[프로그래머스 / Python] 요격 시스템

⏳ 문제 https://school.programmers.co.kr/learn/courses/30/lessons/181188 🌱 코드 def solution(targets): answer = s = e = 0 targets.sort(key=lambda x:x[1]) # (s,e) e를 기준으로 정렬 for a, b in targets: if e 겹치지 않으면 answer += 1 s, e = a, b return answer

알고리즘

[프로그래머스 / Python] 오픈채팅방

🧐 문제 https://school.programmers.co.kr/learn/courses/30/lessons/42888 👻 문제 풀이 def solution(record): answer = [] # 정답을 담을 배열 change = {} # key: user id, value: user name -> 변경된 이름을 담을 딕셔너리 # 1. 변경된 이름 업데이트 for r in record: info = r.split() if info[0] in ("Change", "Enter"): change[info[1]] = info[2] # 2. 주어진 규칙에 맞게 출력하도록 for r in record: info = r.split() command, user_id = info[0], info[1] if info..

알고리즘

[프로그래머스 / Python] 택배 배달과 수거하기

🍀 문제 👊🏻 택배 배달과 수거하기 > https://school.programmers.co.kr/learn/courses/30/lessons/150369 👻 문제 풀이 1️⃣ 가장 먼 집부터 방문해야한다. 0: have_to_delivery -= cap have_to_pickup -= cap result += (n - i) * 2 ❓ while문의 조건을 "배달해야 할 박스의 수 - 트럭에 실을 수 박스의 개수" > 0 or "수거해야 할 박스의 수 - 트럭에 실을 수 박스의 개수" > 0 으로 설정한 이유 : 배달 혹은 수거해야할 상자가 하나라도 남아있으면 무조건 방문해야하기 때문이다. 👩🏻‍💻 전체코드 def solution(cap, n, deliveries, pickups): result = 0 ..

알고리즘

[프로그래머스 / Python] 개인정보 수집 유효기간

👻 문제 https://school.programmers.co.kr/learn/courses/30/lessons/150370 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 🌱 깨알 Python 지식 👊🏻 split() - sep 파라미터 : 어떤 문자열을 기준으로 나눌 건지 test = 'Hello world : 헬로 월드' A, B = test.split(sep=':') # sep 명시하지 않을 시 공백을 기준으로 문자열 나눔 print(A) print(B) -- output -- Hello world 헬로 월드 - maxsplit 파라미터 : spli..

알고리즘

[BOJ / Python] 14719 빗물

🔫 문제 : 14719 빗물 https://www.acmicpc.net/problem/14719 🌱 풀이과정 💡 예제 1️⃣ 맨 앞과 맨 뒤에서는 물이 고일 수 없다. 2️⃣ 빗물이 고일 조건 : 좌우로 나보다 높은 블록이 존재하면 됨 3️⃣ 고이는 빗물의 양 : 왼쪽과 오른쪽 블록 중 더 낮은 블록 - 현 위치의 값 👩🏻‍💻 전체코드 import sys input = sys.stdin.readline # 입력 H, W = map(int, input().split()) data = list(map(int, input().split())) # 빗물의 총량 answer = 0 # 맨 앞과 맨 뒤는 빗물이 고일 수 없으므로 1 ~ W-1까지 탐색 for i in range(1, W - 1): left = ma..

허지렁이
'알고리즘' 카테고리의 글 목록