목록Development/Algorithm & Coding Test (189)
컴공생의 다이어리
[프로그래머스] 오랜 기간 보호한 동물(1) - MySQL SELECT I.NAME, I.DATETIME FROM ANIMAL_INS I LEFT JOIN ANIMAL_OUTS O ON I.ANIMAL_ID = O.ANIMAL_ID WHERE O.ANIMAL_ID IS NULL ORDER BY I.DATETIME LIMIT 3; https://school.programmers.co.kr/learn/courses/30/lessons/59044 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr
[프로그래머스] 있었는데요 없었습니다 - MySQL SELECT O.ANIMAL_ID, O.NAME FROM ANIMAL_OUTS O JOIN ANIMAL_INS I ON O.ANIMAL_ID = I.ANIMAL_ID WHERE O.DATETIME < I.DATETIME ORDER BY I.DATETIME; https://school.programmers.co.kr/learn/courses/30/lessons/59043 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr
[프로그래머스] 없어진 기록 찾기 - MySQL SELECT A.ANIMAL_ID, A.NAME FROM ANIMAL_OUTS A LEFT JOIN ANIMAL_INS B ON A.ANIMAL_ID = B.ANIMAL_ID WHERE B.ANIMAL_ID IS NULL ORDER BY A.ANIMAL_ID; https://school.programmers.co.kr/learn/courses/30/lessons/59042 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr
백준 2512번 : 예산 (문제 바로가기) 내 코드 import sys input = sys.stdin.readline n = int(input()) # 지방의 수 arr = list(map(int, input().split())) # 예산 요청 m = int(input()) # 총 예산 start, end = 0, max(arr) while start = mid: # 요청한 금액이 상한액 이상이라면 curr += mid # 상한액 더하기 else: # 상한액 미만이라면 curr += i # 요청한 금액 더하기 if curr
백준 2015번 : 수들의 합 4 (문제 바로가기) 내 코드 import sys input = sys.stdin.readline n, k = map(int, input().split()) arr = list(map(int, input().split())) # 배열 데이터 sum_dict = {0: 1} # 누적합 관련 dict sum_val = 0 # 누적합 answer = 0 # 합이 K인 부분합의 개수 for i in arr: sum_val += i if sum_val - k in sum_dict.keys(): # 현재까지의 누적합에서 k를 뺀 값이 sum_dict에 있다면 answer += sum_dict[sum_val - k] # answer에 해당하는 값의 value만큼 더하기 # sum_dic..
백준 17352번 : 여러분의 다리가 되어 드리겠습니다! (문제 바로가기) 내 코드 import sys input = sys.stdin.readline def find_parent(parent, x): # 이어진 섬의 대표 섬 찾기 if parent[x] != x: parent[x] = find_parent(parent, parent[x]) return parent[x] def union(parent, a, b): # 섬 잇기 a = find_parent(parent, a) b = find_parent(parent, b) if a < b: parent[b] = a else: parent[a] = b n = int(input()) # 섬의 수 parent = [i for i in range(n + 1)] ..
백준 1654번 : 랜선 자르기 (문제 바로가기) 내 코드 import sys input = sys.stdin.readline # k : 이미 가지고 있는 랜선의 개수, n : 필요한 랜선의 개수 k, n = map(int, input().split()) lan_cable = [int(input()) for _ in range(k)] answer = 0 # 랜선의 최대 길이 start, end = 1, max(lan_cable) while start = n: # 랜선의 개수가 n이상이면 start = mid + 1 answer = mid else: # 랜선의 개수가 n미만이면 end = mid - 1 print(answer)
[프로그래머스] 짝지어 제거하기 - 파이썬(Python) from collections import deque def solution(s): temp = deque() for i in range(len(s)): if temp and temp[-1] == s[i]: temp.pop() else: temp.append(s[i]) return 0 if temp else 1 https://programmers.co.kr/learn/courses/30/lessons/12973 코딩테스트 연습 - 짝지어 제거하기 짝지어 제거하기는, 알파벳 소문자로 이루어진 문자열을 가지고 시작합니다. 먼저 문자열에서 같은 알파벳이 2개 붙어 있는 짝을 찾습니다. 그다음, 그 둘을 제거한 뒤, 앞뒤로 문자열을 이어 붙 program..
[프로그래머스] 예상 대진표 - 파이썬(Python) def solution(n, a, b): answer = 0 while a != b: answer += 1 a, b = (a + 1) // 2, (b + 1) // 2 # +1을 한 뒤 2로 나눈 몫을 저장하는 이유는 # a, b가 홀수이건 짝수이건 1을 더해서 몫으로 나누면 # 다음 라운드의 번호를 구할 수 있음 return answer https://programmers.co.kr/learn/courses/30/lessons/12985 코딩테스트 연습 - 예상 대진표 △△ 게임대회가 개최되었습니다. 이 대회는 N명이 참가하고, 토너먼트 형식으로 진행됩니다. N명의 참가자는 각각 1부터 N번을 차례대로 배정받습니다. 그리고, 1번↔2번, 3번↔4번,..
[프로그래머스] 폰켓몬 - 파이썬(Python) def solution(nums): return min(len(nums) // 2, len(set(nums))) https://programmers.co.kr/learn/courses/30/lessons/1845 코딩테스트 연습 - 폰켓몬 당신은 폰켓몬을 잡기 위한 오랜 여행 끝에, 홍 박사님의 연구실에 도착했습니다. 홍 박사님은 당신에게 자신의 연구실에 있는 총 N 마리의 폰켓몬 중에서 N/2마리를 가져가도 좋다고 했습니다. programmers.co.kr