반응형

전체 글 163

프로그래머스 가장 큰 수

Level 2 정렬 문제 : https://programmers.co.kr/learn/courses/30/lessons/42746# 코딩테스트 연습 - 가장 큰 수 0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 알아내 주세요. 예를 들어, 주어진 정수가 [6, 10, 2]라면 [6102, 6210, 1062, 1026, 2610, 2106]를 만들 수 있고, 이중 가장 큰 programmers.co.kr 제출 코드 def solution(numbers): answer = '' arr = [str(x)*3 for x in numbers] arr.sort(reverse = True) for num in arr: temp = num[:len(num)//3] answer +=..

프로그래머스 모의고사

Level 1 완전탐색 문제 : https://programmers.co.kr/learn/courses/30/lessons/42840 코딩테스트 연습 - 모의고사 수포자는 수학을 포기한 사람의 준말입니다. 수포자 삼인방은 모의고사에 수학 문제를 전부 찍으려 합니다. 수포자는 1번 문제부터 마지막 문제까지 다음과 같이 찍습니다. 1번 수포자가 찍는 programmers.co.kr 정답 코드 def solution(answers): ans = [] giveup1 = [1, 2, 3, 4, 5] giveup2 = [2, 1, 2, 3, 2, 4, 2, 5] giveup3 = [3, 3, 1, 1, 2, 2, 4, 4, 5, 5] cnt = [0, 0, 0] for i in range(len(answers)):..

백준 17609 회문 (파이썬)

문제 : https://www.acmicpc.net/problem/17609 첫번째 풀이 (시간초과) import sys def solve(): string = input().strip() if len(string)%2 == 0: #뒤집었는데 똑같은 경우 #그 외는 없음 left = list(string[:len(string)//2]) right = list(string[len(string)//2:]) right.reverse() if left == right: return 0 return 2 else: for i in range(len(string)): temp = string[:i] + string[i+1:] left = list(temp[:len(temp) // 2]) right = list(tem..

프로그래머스 주식 가격 (파이썬)

Level 2 스택/큐 문제: https://programmers.co.kr/learn/courses/30/lessons/42584 코딩테스트 연습 - 주식가격 초 단위로 기록된 주식가격이 담긴 배열 prices가 매개변수로 주어질 때, 가격이 떨어지지 않은 기간은 몇 초인지를 return 하도록 solution 함수를 완성하세요. 제한사항 prices의 각 가격은 1 이상 10,00 programmers.co.kr from collections import deque def solution(prices): answer = [] for i in range(len(prices)-1): price = 1 for j in range(i+1, len(prices)-1): if prices[i]

프로그래머스 다리를 지나는 트럭 (파이썬)

Level 2 스택/큐 문제 : https://programmers.co.kr/learn/courses/30/lessons/42583 코딩테스트 연습 - 다리를 지나는 트럭 트럭 여러 대가 강을 가로지르는 일차선 다리를 정해진 순으로 건너려 합니다. 모든 트럭이 다리를 건너려면 최소 몇 초가 걸리는지 알아내야 합니다. 다리에는 트럭이 최대 bridge_length대 올라갈 programmers.co.kr 정답 코드 from collections import deque def solution(bridge_length, weight, truck_weights): answer = 0 trucks = deque(truck_weights) # 트럭의 무게 onBrigde = deque([]) # [다리 위에 있는..

프로그래머스 프린터 (파이썬)

Level 2 스택/큐 문제 : https://programmers.co.kr/learn/courses/30/lessons/42587 코딩테스트 연습 - 프린터 일반적인 프린터는 인쇄 요청이 들어온 순서대로 인쇄합니다. 그렇기 때문에 중요한 문서가 나중에 인쇄될 수 있습니다. 이런 문제를 보완하기 위해 중요도가 높은 문서를 먼저 인쇄하는 프린 programmers.co.kr 첫번째 풀이 from collections import deque def solution(priorities, location): answer = 0 q = deque(priorities) idx = deque([i for i in range(len(q))]) cnt = 1 while q: M = max(q) pri = q.pople..

프로그래머스 기능 개발 (파이썬)

Level 2 스택/큐 문제 : https://programmers.co.kr/learn/courses/30/lessons/42586 코딩테스트 연습 - 기능개발 프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 programmers.co.kr 첫번째 정답 코드 from collections import deque def solution(progresses, speeds): answer = [] proQ = deque(progresses) spdQ = deque(speeds) while proQ: per = proQ.popleft() speed = spdQ.pop..

프로그래머스 베스트앨범 (파이썬)

Level 3 해시 문제 : https://programmers.co.kr/learn/courses/30/lessons/42579 코딩테스트 연습 - 베스트앨범 스트리밍 사이트에서 장르 별로 가장 많이 재생된 노래를 두 개씩 모아 베스트 앨범을 출시하려 합니다. 노래는 고유 번호로 구분하며, 노래를 수록하는 기준은 다음과 같습니다. 속한 노래가 programmers.co.kr 제출 코드 def solution(genres, plays): answer = [] dic = {} #장르별로 플레이와 인덱스 추가 for i in range(len(genres)): # 딕셔너리도 append 가능 if genres[i] in dic: dic[genres[i]].append([plays[i], i]) else: d..

ProblemSolving/Hash 2022.05.05

백준 12865 평범한 배낭 (파이썬)

문제 : https://www.acmicpc.net/problem/12865 정답 코드 import sys def knapsack(N, capacity): for i in range(1, N+1): W = weight[i-1] V = value[i-1] for j in range(1, capacity+1): if W > j: dp[i][j] = dp[i-1][j] else: dp[i][j] = max(V+dp[i-1][j-W], dp[i-1][j]) return dp[N][capacity] if __name__=="__main__": input = sys.stdin.readline N, K = map(int, input().split()) #행은 아이템의 개수 #열은 가방의 최대 무대 #dp[i][j] ..

ProblemSolving/DP 2022.05.04

프로그래머스 위장 (파이썬)

Level 2 해시 문제 : https://programmers.co.kr/learn/courses/30/lessons/42578 코딩테스트 연습 - 위장 programmers.co.kr 제출 코드 def solution(clothes): answer = 1 dic = {category : 0 for name, category in clothes} for name, category in clothes: dic[category] += 1 if len(dic) == 1: print(dic[category]) answer = dic[category] return answer for k in dic.keys(): answer *= (dic[k]+1) answer -= 1 return answer 정리 및 복습 ..

ProblemSolving/Hash 2022.05.03

프로그래머스 전화번호 목록 (파이썬)

Level 2 해시 문제 : https://programmers.co.kr/learn/courses/30/lessons/42577 코딩테스트 연습 - 전화번호 목록 전화번호부에 적힌 전화번호 중, 한 번호가 다른 번호의 접두어인 경우가 있는지 확인하려 합니다. 전화번호가 다음과 같을 경우, 구조대 전화번호는 영석이의 전화번호의 접두사입니다. 구조 programmers.co.kr 제출 코드 def solution(phone_book): answer = True phone_book.sort(key = lambda x : (x, len)) for i in range(len(phone_book)-1): left = phone_book[i] right = phone_book[i+1] if left == right..

ProblemSolving/Hash 2022.05.03

프로그래머스 완주하지 못한 선수 (파이썬)

Level 1 해시 문제 : https://programmers.co.kr/learn/courses/30/lessons/42576 코딩테스트 연습 - 완주하지 못한 선수 수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수 programmers.co.kr 시행착오 첫번째 코드는 동명이인을 해결하지 못했습니다. 그래서 딕셔너리와 count를 이용했으나 테스트 케이스는 맞았지만 효율성 문제에서 틀렸습니다. 따로 남겨놓지 못해서 코드가 없습니다. 정답 코드 정렬해서 이름이 다른 것이 나오면 바로 출력하게 만들었습니다. 1명만 완주를 못했으니까 정렬로 빠르게 해결이 가능했..

ProblemSolving/Hash 2022.05.03

프로그래머스 신고 결과 받기 (파이썬)

Level 1 해시 문제 : https://programmers.co.kr/learn/courses/30/lessons/92334 코딩테스트 연습 - 신고 결과 받기 문제 설명 신입사원 무지는 게시판 불량 이용자를 신고하고 처리 결과를 메일로 발송하는 시스템을 개발하려 합니다. 무지가 개발하려는 시스템은 다음과 같습니다. 각 유저는 한 번에 한 명의 programmers.co.kr 접근 방법 이름을 key, 번호를 value로 하여 딕셔너리로 저장 각 ID 별로 2차원 배열을 생성 > reportList[i][j] i인덱스가 j인덱스를 신고를 했으면 1 안했으면 0 reportList를 같은 열끼리 더한 것이, k를 넘으면 reportList[i][j]가 1인 것만 answer[i] 1증가 def fin..

ProblemSolving/Hash 2022.05.03

백준 11720 연결 요소의 개수 (파이썬)

문제 : https://www.acmicpc.net/problem/11724 첫번째 풀이 처음에 서로소 방법인 줄 알고 그래프 이론의 서로소 구하는 방법을 이용하여 구현하려고 했습니다. 코드는 다음과 같습니다. import sys #특정 원소가 속한 집합 찾기 def findParent(parent, v): # 루트노드가 아니라면 루트 노드를 찾을 때 까지 재귀적 호출 if parent[v] != v: parent[v] = findParent(parent, parent[v]) return parent[v] #부모 합치기 def unionParent(parent, v1, v2): v1 = findParent(parent, v1) v2 = findParent(parent, v2) if v1 < v2: par..

SWEA 2814 최장경로 파이썬

문제: https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV7GOPPaAeMDFAXB T = int(input()) # 여러개의 테스트 케이스가 주어지므로, 각각을 처리합니다. def dfs(start, depth): global ans ans = max(ans, depth) for next in graph[start]: if visited[next]: continue visited[next] = True dfs(next, depth + 1) visited[next] = False for test_case in range(1, T + 1): N, M = map(int, input().split()) graph = [..

프로그래머스 SQL(JOIN-4) 보호소에서 중성화한 동물

문제 : https://programmers.co.kr/learn/courses/30/lessons/59045 제출 코드 SELECT ANIMAL_INS.ANIMAL_ID,ANIMAL_INS.ANIMAL_TYPE, ANIMAL_INS.NAME FROM ANIMAL_INS LEFT JOIN ANIMAL_OUTS ON ANIMAL_INS.ANIMAL_ID = ANIMAL_OUTS.ANIMAL_ID WHERE ANIMAL_INS.SEX_UPON_INTAKE != ANIMAL_OUTS.SEX_UPON_OUTCOME ORDER BY ANIMAL_INS.ANIMAL_ID 후기 단순하게 입양 당시 중성화의 유무와 보호소에서 나갈 당시 중성화의 유무가 틀린 경우를 시도해봤는데 한번에 답을 맞았습니다. 많이 어려운 문제..

ProblemSolving/SQL 2022.04.29

프로그래머스 SQL(JOIN-3) 오랜 기간 보호한 동물(1)

문제 : https://programmers.co.kr/learn/courses/30/lessons/59044 제출코드 SELECT ANIMAL_INS.NAME, ANIMAL_INS.DATETIME FROM ANIMAL_INS LEFT JOIN ANIMAL_OUTS ON ANIMAL_INS.ANIMAL_ID = ANIMAL_OUTS.ANIMAL_ID WHERE ANIMAL_OUTS.ANIMAL_ID IS NULL ORDER BY ANIMAL_INS.DATETIME LIMIT 3 학습내용 (My SQL) 상위 n 개 출력 하는 방법 : LIMIT n 하위 n 개를 출력하는 방법: ORDER BY 순서를 DESC로 바꿔 LIMIT n 사용 NULL을 적용하는 Key: LEFT JOIN 적용 되는 TABLE의..

ProblemSolving/SQL 2022.04.29

백준 23289 온풍기 안녕! (파이썬)

문제 : https://www.acmicpc.net/problem/23289 23289번: 온풍기 안녕! 유난히 추운 날씨가 예상되는 이번 겨울을 대비하기 위해 구사과는 온풍기를 설치하려고 한다. 온풍기의 성능을 테스트하기 위해 구사과는 집을 크기가 R×C인 격자판으로 나타냈고, 1×1 크기 www.acmicpc.net 조건 요약 ''' 가장 처음 온도 0, 빈칸은 온도 0 1. 집에 있는 모든 온풍기에서 바람 한번 나옴 2. 온도 조절 3. 온도가 1이상인 가장 바깥쪽 칸의 온도 1 감소 4. 초콜릿 하나 먹음 5. 모든 5번칸 온도가 K 이상이 되었는지 검사 , 모든 칸의 온도가 K 이상이면 중단, 아니면 1반복 온풍기 나오는 방향: 동서남북 중 하나 나오는 칸 바로 옆은 5 증가. 그 다음 4 (x..

1 2 3 4 5 6 7 8 9
반응형