[SWEA 5203번] 베이비진 게임 (파이썬 풀이) 포스팅 썸네일 이미지

Algorithm/SWEA

[SWEA 5203번] 베이비진 게임 (파이썬 풀이)

문제 바로 가기 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 🤔 문제 설명 및 입출력 - 문제의 저작권은 SWEA에 있습니다 - ✍ 접근 방법 탐욕 알고리즘이 언제나 그렇듯 푸는 방법도 참 다양하고, 유형도 참 다양하다. 근데 놀랍게도 대부분의 경우 머리 속에 즉흥적으로 떠오른 생각을 그대로 구현하면 해결되는 경우가 많다. 이번 문제를 풀면서 떠오른 생각은 플레이어 1 / 2에게 카드패를 한장 씩 나누어주다가, triplet이나 run이 발생하면 check를 하여 승리자로 만들게 하는 것이다. 그러기 위해서 아래와 같은 접근을 취했다. 1. 입력을 각 플레이어가 받을 카드 리스트로 변환함 2. 리스트를 fo..

2021.06.03 게시됨

[SWEA 1251번] 하나로 (파이썬 풀이) 포스팅 썸네일 이미지

Algorithm/SWEA

[SWEA 1251번] 하나로 (파이썬 풀이)

문제 바로 가기 🤔 문제 설명 및 입출력 - 문제의 저작권은 SWEA에 있습니다 - ✍ 접근 방법 이 문제는 시작 노드에서 도착 노드까지 도달하는 최소 비용을 구하는 문제가 아니라 ( 만약 문제가 이렇다면 다익스트라 계열 알고리즘으로 접근해야한다), 시작 노드에서 모든 노드를 순회하는데, 그 경로 중 최소 비용 경로를 구하는 문제이다. 모든 노드를 순회하는데, 최소 비용이 나오는 경로를 MST (Minimum Spanning Tree , 최소 신장 트리)라고 한다. MST를 구하는 대표적인 알고리즘으로는 프림 알고리즘과, 크루스칼 알고리즘이 있는데, 크루스칼 알고리즘은 union-find 개념을 적용해야하는데, 내가 이것에 익숙치 않아 프림 알고리즘으로 구현하기로 결심했다. 프림 알고리즘은 MST를 찾기..

2021.06.03 게시됨

[BOJ 1181][백준 1181번] 단어 정렬 (파이썬 풀이) 포스팅 썸네일 이미지

Algorithm/Baekjoon

[BOJ 1181][백준 1181번] 단어 정렬 (파이썬 풀이)

https://www.acmicpc.net/problem/1181 🤔 문제 설명 및 입출력 ✍ 접근 방법 앞서 풀었던 10814번과 완전 동일한 유형의 문제이다. 참고 : https://spookyjelly.tistory.com/15 1순위 : len(x) / 2순위 : x 로 두고 sort with lambda를 사용하여 정렬 후, 출력한다. 👨‍💻 소스 코드 파이썬 N = int(input()) words = [] for _ in range(N): words.append(input()) words = list(set(words)) # 길이 순 정렬 / 2순위 : 사전 순 정렬 words = sorted(words,key= lambda x : [len(x),x]) for word in words: pr..

2021.06.02 게시됨

[BOJ 10814][백준 10814번] 나이순 정렬 (파이썬 풀이) 포스팅 썸네일 이미지

Algorithm/Baekjoon

[BOJ 10814][백준 10814번] 나이순 정렬 (파이썬 풀이)

https://www.acmicpc.net/problem/10814 🤔 문제 설명 및 입출력 ✍ 접근 방법 파이썬은 sort 함수가 매우매우매우 잘 만들어져 있다. 팀 소트를 사용해서 속도도 굉장히 빠르고, 정렬의 key 값으로 익명함수 lambda를 적용해서 개발자 입맛대로 정렬을 시킬 수 있다. 쉽게 말해서, 입력을 하나의 리스트로 몰아넣은 다음, sort와 lambda를 이용해서 깔끔하게 정리하면 된다. 👨‍💻 소스 코드 파이썬 N = int(input()) lst = [] for idx in range(N): age,name = input().split() age = int(age) lst.append((age,name,idx)) lst = sorted(lst,key= lambda x : [x[0..

2021.06.02 게시됨

[BOJ 1865][백준 1865번] 웜홀 (파이썬 풀이) 포스팅 썸네일 이미지

Algorithm/Baekjoon

[BOJ 1865][백준 1865번] 웜홀 (파이썬 풀이)

https://www.acmicpc.net/problem/1865 🤔 문제 설명 및 입출력 ✍ 접근 방법 음수 가중치가 들어가는 그래프 탐색 문제이다 ➡ 벨만-포드 알고리즘을 적용해서 풀자. 사실 이렇게 알고리즘을 뭔가 공식화해서 풀어재끼는게 썩 유쾌하지는 않지만, 그래도 코딩 테스트를 염두해보았을 때,머리 속을 스쳐지나가는 생각들을 단숨에 훅 잡아채는게 유리하다는 생각이 든다. 하지만, 이 문제는 시작점에서 도착점까지의 최소 경로비용을 구하는 순수 벨만-포드 문제가 아니다. 문제의 요지는 백준이가 시간이 줄어들면서, 출발 위치로 돌아오는 것이 가능한지를 물어보기 때문에, 우리는 주어진 그래프에서 벨만-포드 알고리즘이 무한히 반복되는 경우 ( 음수 사이클에 빠지는 경우)를 찾아야한다. 그럼 그 음수 사이..

2021.06.02 게시됨

[BOJ 1149][백준 1149번] RGB거리 (파이썬 풀이) 포스팅 썸네일 이미지

Algorithm/Baekjoon

[BOJ 1149][백준 1149번] RGB거리 (파이썬 풀이)

https://www.acmicpc.net/problem/1149 1149번: RGB거리 첫째 줄에 집의 수 N(2 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 각 집을 빨강, 초록, 파랑으로 칠하는 비용이 1번 집부터 한 줄에 하나씩 주어진다. 집을 칠하는 비용은 1,000보다 작거나 www.acmicpc.net 🤔 문제 설명 및 입출력 ✍ 접근 방법 DP로 푸는 문제가 확실한데, 아쉽게도 처음 문제를 봤을때는 그런 생각을 못하고 단순한 조합 문제으로 생각했었다. 중복을 허용하는 순열 리스트를 만들어놓고, 매 3번째 입력마다 순열 리스트를 이용해서 최소값을 구하여 지속적으로 결과값에 더해가는 방식으로 접근 했다. 얼핏 보면 괜찮은 접근법이지만, 이 접근법에는 2가지 큰 구멍이 있었다...

2021.06.01 게시됨

[BOJ 10826][백준 10826번] 피보나치 수 4 (파이썬 풀이) 포스팅 썸네일 이미지

Algorithm/Baekjoon

[BOJ 10826][백준 10826번] 피보나치 수 4 (파이썬 풀이)

https://www.acmicpc.net/problem/10826 10826번: 피보나치 수 4 피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 된다. 이를 식으로 써보면 Fn = Fn-1 + Fn-2 (n ≥ 2)가 www.acmicpc.net 🤔 문제 설명 및 입출력 ✍ 접근 방법 피보나치 수열을 구하는 방법은 여러가지가 있는데, 그 중 가장 대표적인 방법이 재귀 함수로 구현하는 방법과 메모이제이션을 활용한 풀이이다. 나는 DP를 이용해서 풀어봤다. 점화식에 따라, n번째 피보나치 수를 구하기 위해 n-1번째 수와 n-2를 더하는데, n-1번째 수와 n-2를 매번 계산하는 것이 아니라, 저장된 어..

2021.05.19 게시됨

[BOJ 1753][백준 1753번] 최단 경로 (파이썬 풀이) 포스팅 썸네일 이미지

Algorithm/Baekjoon

[BOJ 1753][백준 1753번] 최단 경로 (파이썬 풀이)

https://www.acmicpc.net/problem/1753 1753번: 최단경로 첫째 줄에 정점의 개수 V와 간선의 개수 E가 주어진다. (1≤V≤20,000, 1≤E≤300,000) 모든 정점에는 1부터 V까지 번호가 매겨져 있다고 가정한다. 둘째 줄에는 시작 정점의 번호 K(1≤K≤V)가 주어진다. www.acmicpc.net 🤔 문제 설명 및 입출력 ✍ 접근 방법 1. 그래프를 탐색해야한다. 2. 근데 edge에 (음수가 아닌) 가중치가 붙어있다. 3. 다익스트라 알고리즘으로 푼다! 라는 사고방식이 머리 속 깊이 박혀 있었기 때문에, 다익스트라를 통한 풀이법을 생각하는 것은 어렵지 않습니다. 다만 "이것을 어떻게 최적화 할까?" 라는 물음에 답하는 것이 어려웠지요. 입력값이 1

2021.05.19 게시됨