Algorithm

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 코드 def solution(new_id): # 1단계: 소문자로 치환 new_id = new_id.lower() # 2단계: 특수문자 제거 for i in new_id: if i in '~!@#$%^&*()=+[{]}:?,/': new_id = new_id.replace(i, '') # 3단계 ..., ..을 .으로 치환 while '..' in new_id: new_id = new_id.replace('..', '.') # 4단계: 처음 또는 끝에 위치한 . 제거 new_id = new_id.strip('..
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제가 길기 때문에 접근법과 풀이과정에 대한 설명만 남깁니다. 코드 def solution(survey, choices): n1, n2, n3, n4 = {'R':0, 'T':0}, {'C':0, 'F':0}, {'J':0, 'M':0}, {'A':0, 'N':0} for i in range(len(survey)): if survey[i] == 'RT' or survey[i] =='TR': if choices[i] < 4: # 비동의 관련 선택지 n1[survey[i][0]] += 4 - choices[i] ..
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 처음 시도한 코드 def solution(players, callings): for i in callings: idx = players.index(i) players[idx-1], players[idx] = players[idx], players[idx-1] return players 그냥 swap 하면 쉽게 풀리는 문제 아닌가?라고 덤벼들었다가 시간 초과를 만나게 되었다. calling의 최대 길이가 1,000,000이고, players의 최대 길이가 50,000이기 때문에 idx 하나를 구하기 위해선 1,..
4796번: 캠핑 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루어져 있고, L, P, V를 순서대로 포함하고 있다. 모든 입력 정수는 int범위이다. 마지막 줄에는 0이 3개 주어진다. www.acmicpc.net 코드 i = 1 while True: l, p, v = map(int, input().split()) if p==0 and l==0 and v==0: # 0, 0, 0이 입력되면 반복문 종료 break camping = (l * (v // p)) + min((v % p), l) # 캠핑장을 사용할 수 있는 최대 일수 print('Case {}:'.format(i), camping) i += 1 쉬운 문제인 줄 알고 달려들었다가 '틀렸습니다!'를 계속 만나게..
2805번: 나무 자르기 첫째 줄에 나무의 수 N과 상근이가 집으로 가져가려고 하는 나무의 길이 M이 주어진다. (1 ≤ N ≤ 1,000,000, 1 ≤ M ≤ 2,000,000,000) 둘째 줄에는 나무의 높이가 주어진다. 나무의 높이의 합은 항상 M보 www.acmicpc.net 코드 n, m = map(int, input().split()) tree = list(map(int, input().split())) # 이진 탐색을 위한 시작점, 끝점 start = 0 end = max(tree) result = 0 # 최종 절단기 높이 while(start mid: # 절단기보다 주어진 나무가 길면 자른 나머지를 total에 추가 total += i - mid # 이진 탐색 if total < m: #..
1920번: 수 찾기 첫째 줄에 자연수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 N개의 정수 A[1], A[2], …, A[N]이 주어진다. 다음 줄에는 M(1 ≤ M ≤ 100,000)이 주어진다. 다음 줄에는 M개의 수들이 주어지는데, 이 수들 www.acmicpc.net 코드 # 이진 탐색 함수(재귀적 구현) def binary_search(array, target, start, end): if start > end: return None mid = (start + end) // 2 # 중간점 if array[mid] == target: # target을 찾았으면 리턴 return mid elif array[mid] > target: # target이 중간점보다 작으면 왼쪽부분 탐..
dduniverse
'Algorithm' 카테고리의 글 목록 (9 Page)