Algorithm/Baekjoon

반응형
반응형
Algorithm/Baekjoon

[Baekjoon] 3003 Python

3003번: 킹, 퀸, 룩, 비숍, 나이트, 폰 첫째 줄에 동혁이가 찾은 흰색 킹, 퀸, 룩, 비숍, 나이트, 폰의 개수가 주어진다. 이 값은 0보다 크거나 같고 10보다 작거나 같은 정수이다. www.acmicpc.net 풀이과정 단순한 인덱스비교 사칙연산 문제. 내가 생각했던 풀이와 더 간단한 람다식 두가지 정리 import sys; input = sys.stdin.readline chess = [1, 1, 2, 2, 2, 8] nums = list(map(int, input().rstrip().split())) for i in range(6): print(chess[i]-nums[i], end=' ') 아래와 같이 람다를 사용하면 두개의 리스트에서 동일한 인덱스자리를 비교하여 연산할 수 있다. wh..

Algorithm/Baekjoon

[Baekjoon] 1068 Python

1068번: 트리 첫째 줄에 트리의 노드의 개수 N이 주어진다. N은 50보다 작거나 같은 자연수이다. 둘째 줄에는 0번 노드부터 N-1번 노드까지, 각 노드의 부모가 주어진다. 만약 부모가 없다면 (루트) -1이 주어진다 www.acmicpc.net 예제는 4번째만 활용해서 작성하겠다. 예제 입력 4 9 -1 0 0 2 2 4 4 6 6 4 예제 출력 4 2 풀이과정 평소 풀이하던 방식으로 탐색하려다 보니 받은 데이터를 바탕으로 연결된 노드를 새로 생성해서 탐색했는데, 나중에 찾아보니 보다 간단한 방법이 있어서 같이 기록으로 남기려고 한다. 1. 연결된 노드로 새로 생성한 후 탐색 1) 새로운 노드 선언 후 반복문을 돌리며 연결된 노드로 만들어 준다. 이때, 부모가 없는 경우는 -1이라는 전제와 예제 ..

Algorithm/Baekjoon

[Baekjoon] 1302 Python

1302번: 베스트셀러 첫째 줄에 오늘 하루 동안 팔린 책의 개수 N이 주어진다. 이 값은 1,000보다 작거나 같은 자연수이다. 둘째부터 N개의 줄에 책의 제목이 입력으로 들어온다. 책의 제목의 길이는 50보다 작거나 같고 www.acmicpc.net 풀이과정 자료구조와 배열의 아주 기본적인 문제. 딕셔너리에 책의 종류와 개수를 카운트해주고, 가장 많은 개수를 가진 책들만 리스트로 뽑은 뒤 사전순으로 정렬하여 [0]번째를 출력한다. import sys; input = sys.stdin.readline N = int(input()) dic = {} for _ in range(N): book = input().rstrip() if book in dic: dic[book] += 1 else: dic[book..

Algorithm/Baekjoon

[Baekjoon] 1149 Python

1149번: RGB거리 첫째 줄에 집의 수 N(2 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 각 집을 빨강, 초록, 파랑으로 칠하는 비용이 1번 집부터 한 줄에 하나씩 주어진다. 집을 칠하는 비용은 1,000보다 작거나 www.acmicpc.net 예제 리스트 중에 가장 주의해야하는 5번째 리스트만 첨부하겠다 예제 입력 5 8 71 39 44 32 83 55 51 37 63 89 29 100 83 58 11 65 13 15 47 25 29 60 66 19 예제 출력 5 253 풀이과정 처음에는 각 집마다 작은수의 색상을 겹치지 않게 선택하면 된다고 생각했는데, 최솟값을 구하려면 그것만으로 충분하지 않아서 다른 코드들을 참고하고 이해하게되었다. 참고자료 첨부. [백준] 1149 RGB거..

Algorithm/Baekjoon

[Baekjoon] 2606 Python

2606번: 바이러스 첫째 줄에는 컴퓨터의 수가 주어진다. 컴퓨터의 수는 100 이하인 양의 정수이고 각 컴퓨터에는 1번 부터 차례대로 번호가 매겨진다. 둘째 줄에는 네트워크 상에서 직접 연결되어 있는 컴퓨터 쌍 www.acmicpc.net 예제 입력 1 7 6 1 2 2 3 1 5 5 2 5 6 4 7 예제 출력 1 7 6 1 2 2 3 1 5 5 2 5 6 4 7 풀이과정 기본적인 dfs문제였지만 처음에 접했을 때는 바로 풀지 못했다. 다른 촌수계산 문제들을 풀다가 다시 돌아와 풀어보니 그래도 쉽게 풀렸던 문제. 연결되어 있는 컴퓨터들을 각 인덱스에 넣어주고 dfs로 탐색하면서 방문했던 노드는 제외하면서 카운트해주었다. 1. 전체 컴퓨터 개수(N)에 맞게 nums 리스트와 visited를 만들어둔다...

Algorithm/Baekjoon

[Baekjoon] 9375 Python

9375번: 패션왕 신해빈 첫 번째 테스트 케이스는 headgear에 해당하는 의상이 hat, turban이며 eyewear에 해당하는 의상이 sunglasses이므로 (hat), (turban), (sunglasses), (hat,sunglasses), (turban,sunglasses)로 총 5가지 이다. www.acmicpc.net 풀이과정 각 테스트케이스의 for문 안에서 카테고리별 담기는 의상의 개수를 세어준다. 경우의 수를 구하기 위해 의상별 개수를 곱해줄 때 '해당 의상(카테고리)을 선택하지 않는 경우'를 추가하기 위해 +1을 해주고, 최종적으로 '아무것도 입지 않은 경우'를 -1 해주어야 한다. 해당 경우의 수를 +-해줘야한다는 걸 찾는 게 어려웠다. import sys; input = s..

emojiyeon
'Algorithm/Baekjoon' 카테고리의 글 목록