백준 / 임시 반장 정하기 / 1268번 / Python
·
코딩테스트(프로그래머스 & 백준)/백준-Python
*문제 출처는 백준에 있습니다. 문제 제목: 임시 반장 정하기 / 1268번 (실버 5단계)문제 사이트: https://www.acmicpc.net/problem/1268 문제 설명 나의 풀이n = int(input()) # 학생 수 입력students = [list(map(int, input().split())) for _ in range(n)] # 학생들의 반 정보 입력# 같은 반 학생 수를 저장할 리스트same_class_counts = [0] * n# 각 학생에 대해 비교for i in range(n): for j in range(n): if i != j: # 자신과는 비교하지 않음 for grade in range(5): # 1학년부터 5학년까지 ..
백준 / 문제집 / 1766번 / Python
·
코딩테스트(프로그래머스 & 백준)/백준-Python
*문제 출처는 백준에 있습니다. 문제 제목: 문제집 / 1766번 (골드 2단계)문제 사이트: https://www.acmicpc.net/problem/1766 문제 설명 나의 풀이import heapq# 문제 조건: 위상 정렬, 우선순위 큐(힙)# n은 문제의 수 m은 먼저 푸는 것이 좋은 문제에 대한 정보의 개수n, m = map(int ,input().split())indegree = [0] * (n + 1)graph = [[] for _ in range(n + 1)]for _ in range(m): a, b = map(int, input().split()) graph[a].append(b) indegree[b] += 1def toplogy_sort(): result = [] ..
백준 / 거짓말 / 1043번 / Python
·
코딩테스트(프로그래머스 & 백준)/백준-Python
*문제 출처는 백준에 있습니다. 문제 제목: 거짓말 / 1043번 (골드 4단계)문제 사이트: https://www.acmicpc.net/problem/1043 문제 설명 나의 풀이# 사람의 수 N과 파티의 수 Mn, m = map(int, input().split())# 결과값answer = 0knows = list(map(int, input().split()))knows.pop(0)# 파티의 개수 및 참가자party = []# 1번째 원소는 파티 참가자의 사람 수라서 제거for _ in range(m): people = list(map(int, input().split())) people.pop(0) party.append(people)# 길이가 긴 사람부터 확인 왜냐하면 길수록 다른..
백준 / 기타줄 / 1049번 / Python
·
코딩테스트(프로그래머스 & 백준)/백준-Python
*문제 출처는 백준에 있습니다. 문제 제목: 기타줄 / 1049번 (실버 4단계)문제 사이트: https://www.acmicpc.net/problem/1049 문제 설명 나의 풀이# 입력 처리n, m = map(int, input().split())six_set = 1001 # 패키지 가격의 초기값 (최대값보다 큰 값으로 설정)each = 1001 # 낱개 가격의 초기값 (최대값보다 큰 값으로 설정)# 각 브랜드의 패키지 및 낱개 가격을 입력받으며 최소값 갱신for _ in range(m): s, e = map(int, input().split()) six_set = min(six_set, s) each = min(each, e)# 최소 비용 계산# 1. 전부 패키지로만 구매하..
백준 / 영수증 / 25304번 / Python
·
코딩테스트(프로그래머스 & 백준)/백준-Python
*문제 출처는 백준에 있습니다. 문제 제목: 영수증 / 25304번 (브론즈 4단계)문제 사이트: https://www.acmicpc.net/problem/25304 문제 설명 나의 풀이x = int(input())n = int(input())receipt = []for _ in range(n): a, b = map(int, input().split()) receipt.append(a * b)if x == sum(receipt): print("Yes")else: print("No")※ 알아야 할 것구현문제이다!
백준 / 농장 관리 / 1245번 / Python
·
코딩테스트(프로그래머스 & 백준)/백준-Python
*문제 출처는 백준에 있습니다. 문제 제목: 농장 관리 / 1245번 (골드 5단계)문제 사이트: https://www.acmicpc.net/problem/1245 문제 설명 나의 풀이from collections import deque# bfs 함수def bfs(mount, visit, start_y, start_x): # 시작 위치의 높이 peak_height = mount[start_y][start_x] # 봉우리 여부를 판단하는 플래그 is_peak = True # bfs 큐 초기화 q = deque([(start_y, start_x)]) visit[start_y][start_x] = True # 상하좌우 및 대각선을 포함한 8방향 이동 di..
백준 / 시간 관리 / 1263번 / Python
·
코딩테스트(프로그래머스 & 백준)/백준-Python
*문제 출처는 백준에 있습니다. 문제 제목: 시간 관리 / 1263번 (골드 5단계)문제 사이트: https://www.acmicpc.net/problem/1263 문제 설명 나의 풀이# 일의 개수n = int(input())# 일 명단works = [list(map(int, input().split())) for _ in range(n)]works.sort(key = lambda x: x[1], reverse = True)start = works[0][1] - works[0][0]for i in range(1, len(works)): next_start, next_end = works[i] if next_end -1: print(start)else: print(-1)※ 알아야 할..
백준 / 달팽이 / 1913번 / Python
·
코딩테스트(프로그래머스 & 백준)/백준-Python
*문제 출처는 백준에 있습니다. 문제 제목: 달팽이 / 1913번 (실버 3단계)문제 사이트: https://www.acmicpc.net/problem/1913 문제 설명 나의 풀이# 정수를 입력 받는다.n = int(input())fine_target = int(input())# 돌아갈 수 있는 길이max_turn = 1# 돌아가는 현재 턴current_turn = 0# 달팽이 배열snail = [[0] * n for _ in range(n)]# 컬럼 행렬row = n // 2column = n // 2# 값을 넣을 배열count = 1# 좌표를 저장할 배열result = []# 0일때는 위 / 1일때는 오른쪽 / 2일때는 아래 / 3일때는 왼쪽direction = 0# 초기 값은 직접 넣어주고 시작s..
백준 / 카드2 / 2164번 / Python
·
코딩테스트(프로그래머스 & 백준)/백준-Python
*문제 출처는 백준에 있습니다. 문제 제목: 카드2 / 2164번 (실버 4단계)문제 사이트: https://www.acmicpc.net/problem/2164 문제 설명 나의 풀이from collections import dequen = int(input())cards = deque([i for i in range(1, n + 1)])if len(cards) > 1: while True: one = cards.popleft() if len(cards) == 1: break two = cards.popleft() if len(cards) == 0: cards.append(two) break ..
백준 / 보물 / 1026번 / Python
·
코딩테스트(프로그래머스 & 백준)/백준-Python
*문제 출처는 백준에 있습니다. 문제 제목: 보물 / 1026번 (실버 4단계)문제 사이트: https://www.acmicpc.net/problem/1026 문제 설명 나의 풀이n = map(int, input().split())a = list(map(int, input().split()))b = list(map(int, input().split()))result = 0a.sort()b.sort(reverse = True)for i, j in zip(a, b): result += i * jprint(result)※ 알아야 할 것문제 조건은 단, B에 있는 수는 재배열하면 안 된다. 라고 적혀있지만 B에 있는 수를 재배열해도 된다.
백준 / 수들의 합 / 1789번 / Python
·
코딩테스트(프로그래머스 & 백준)/백준-Python
*문제 출처는 백준에 있습니다. 문제 제목: 수들의 합 / 1789번 (실버 5단계)문제 사이트: https://www.acmicpc.net/problem/1789 문제 설명 나의 풀이# 1789번 수들의 합# 접근법: 작은 수들부터 더해주는 방법이 가장 최대의 값이 출력될 것 같다.# 그리디적으로 0부터 작은 수를 더해주는 것이 가장 효율적인 방법이다.s = int(input())# 문자들의 개수를 셀 변수cnt = 0# 수를 더해줄 변수i = 1# 자연수들의 합이 넘어가면 멈출 변수total = 0while total + i ※ 알아야 할 것https://newkimjiwon.tistory.com/53 [알고리즘] 탐욕(그리디) 알고리즘(Greedy algorithm)탐욕 알고리즘이라고도 불리는 그리..
백준 / 단어 정렬 / 1181번 / Python
·
코딩테스트(프로그래머스 & 백준)/백준-Python
*문제 출처는 백준에 있습니다. 문제 제목: 단어 정렬 / 1181번 (실버 5단계)문제 사이트: https://www.acmicpc.net/problem/1181 문제 설명 나의 풀이n = int(input())words = []for _ in range(n): word = input() words.append(word)words = list(set(words))words.sort()words.sort(key = lambda i:len(i))for i in words: print(i)※ 알아야 할 것파이썬 리스트에서 길이 기준으로 정렬할 때 람다를 사용하면 쉽게 정렬할 수 있다.set은 중복되는 단어를 제거하기 위해서 사용했다.
김치바보
'코딩테스트(프로그래머스 & 백준)' 카테고리의 글 목록 (3 Page)