Python/코딩 문제(34)
-
[리트코드] 21. Merge Two Sorted Lists
# 문제 설명 2개의 정렬된 연결리스트인 list1, list2가 주어진다. 2개의 연결리스트를 하나의 정렬된 연결리스트로 합쳐라. # 입출력 예시 입력 출력 1 -> 2 -> 4 1 -> 3 -> 4 1 -> 1 -> 2 -> 3 -> 4 -> 4 # 코드 풀이 # Definition for singly-linked list. # class ListNode: # def __init__(self, val=0, next=None): # self.val = val # self.next = next class Solution: def mergeTwoLists(self, list1: Optional[ListNode], list2: Optional[ListNode]) -> Optional[ListNode]: # ..
2022.01.14 -
[리트코드] 234. Palindrome Linked List
# 문제 설명 주어진 연결리스트가 팰린드롬(Palindrome) 구조인지 판별하시오. 팰린드롬(Palindrome)이란 회문을 말한다. 예를 들어 "tenet", "level", "Madam, I'm Adam" 과 같이 역순으로 읽어도 같은 말이 되는 말을 말한다. # 입출력 예시 입력 출력 1 -> 2 -> 2 -> 1 true 1 -> 2 false # 코드 풀이 1. py-list 자료구조 활용 # Definition for singly-linked list. # class ListNode: # def __init__(self, val=0, next=None): # self.val = val # self.next = next class Solution: def isPalindrome(self, he..
2022.01.12 -
[백준] 1012: 유기농 배추
https://www.acmicpc.net/problem/1012 # 문제 설명 유기농 배추는 농약을 쓰지 않고 기르기 때문에, 해충으로부터 배추를 보호하는 수단이 필요하다. 해충 방지에 효과적인 배추 흰지렁이를 구입하여 배추를 보호하려고 한다. 배추 흰지렁이는 배추 근처에 서식하면서 해충을 잡아먹는데, 배추에 인접한 다른 배추로 이동할 수 있어서 그 배추들 역시 해충으로부터 보호받을 수 있다. 한 배추의 상하좌우 네 방향에 다른 배추가 위치한 경우, 서로 인접한 상태로 간주한다. 배추는 재배하는 땅에서 배추의 위치가 주어질 때, 최소 몇 마리의 배추 흰지렁이가 필요한지 출력해라. # 코드 풀이 for tc in range(int(input())): n, m, k = map(int, input().spl..
2022.01.04 -
[SWEA] 5248: 그룹 나누기
# 문제 설명 수업에서 같은 조에 참여하고 싶은 2명끼리 출석번호를 제출한다. 한 조의 인원 수 제한을 두지 않았기 때문에, 한 사람이 여러 장의 종이를 제출하거나 여러 사람이 한 사람을 지목한 경우 하나의 팀이 된다. 출석번호는 1~n번까지가 있고, m장의 신청서가 제출되었을 때, 전체 몇 개의 조가 만들어지는지 구하라. # 입출력 예시 입력 출력 3 5 2 1 2 3 4 5 3 1 2 2 3 4 5 7 4 2 3 4 5 4 6 7 4 #1 3 #2 2 #3 3 # 코드 풀이 def union(parent, x, y): a = find(parent, x) b = find(parent, y) if a > b: parent[a-1] = b else: parent[b-1] = a def find(parent..
2021.12.30 -
[SWEA] 5247: 연산
# 문제 설명 정수 n, m값이 주어졌을 때, 다음 4가지 연산만을 사용하여 n값에서 m값에 도달해야한다. - 4가지 연산 : +1, -1, *2, -10 n에서 m에 도달하는 최소한의 연산 횟수를 구한다. 단, 중간 연산 결과는 백만(1000000) 이하의 자연수다. # 입출력 예시 첫 줄은 테스트 케이스 개수이고, 다음 줄부터 n, m이 주어진다. 입력 출력 3 2 7 3 15 36 1007 #1 3 #2 4 #3 8 # 코드 풀이 from collections import defaultdict from collections import deque def get_min_op(n, m): visited = defaultdict(bool) # 방문했는지 d = defaultdict(int) # 최단거리 ..
2021.12.30 -
[백준] 1003: 피보나치 함수
https://www.acmicpc.net/problem/1003 # 문제 설명 다음과 같이 n번째 피보나치 수를 구하는 c++ 함수가 있다. 이 함수는 n번째 피보나치 수를 반환하고, 0과 1을 출력한다. 문제는 0과 1이 각각 몇 번 출력되는지 구하는 것이다. int fibonacci(int n) { if (n == 0) { printf("0"); return 0; } else if (n == 1) { printf("1"); return 1; } else { return fibonacci(n‐1) + fibonacci(n‐2); } } # 입출력 예시 입력 출력 3 0 1 3 1 0 0 1 1 2 2 6 22 5 8 10946 17711 # 문제 풀이 def fibos_no(n): zero = {0:..
2021.12.27