PS

Problem Solving (알고리즘, 자료구조 문제풀이)
[PS] BOJ 26091 / 현대모비스 소프트웨어 아카데미
PS

[PS] BOJ 26091 / 현대모비스 소프트웨어 아카데미

문제 링크: https://www.acmicpc.net/problem/26091 Thumbnail: Photo by Stephen Kidd (Unsplash) 문제 이름에 걸맞는 현대차로 썸네일 들고 왔습니다 😄 풀이 구상 가장 많은 팀을 소프트웨어 아카데미에 참여시키기 위해서는 결국 점수가 가장 높은 사람과 가장 낮은 사람을 같은 팀에 붙이는 식으로, 팀의 능력치가 중간 값에 맞춰지도록 하는 방식을 구상했다.
3 min read
[PS] BOJ 30804 / 과일 탕후루
PS

[PS] BOJ 30804 / 과일 탕후루

문제 링크: https://www.acmicpc.net/problem/30804 Thumbnail: Photo by Yevhen Buzuk (Unsplash) 풀이 과일의 종류별 개수 세기 정답을 구하기 위해서는, 현재 탕후루에 포함된 과일의 개수를 세는 방법이 필요합니다. 이는 Map 형태의 자료구조를 활용하면 됩니다. 투 포인터 투 포인터란, 이름처럼 두개의 포인터(배열의 인덱스)를 가지고 부분 배열을 동적으로
2 min read
[PS] BOJ 12015 / 가장 긴 증가하는 부분 수열 2
PS

[PS] BOJ 12015 / 가장 긴 증가하는 부분 수열 2

문제 링크: https://www.acmicpc.net/problem/12015 Thumbnail: Photo by Imagine Buddy (Unsplash) 어제 풀었던 LIS 문제와 마찬가지이나, LIS의 길이가 아닌 원소 합을 기준으로 찾는 문제입니다. 풀이 LIS 이해하기 LIS(Longest Increasing Subsequence)에 대한 설명은 이전 글을 참고해주세요! DP 풀이의 한계 이전까지는 입력으로 주어지는 배열의 길이가 1,000
4 min read
[PS] BOJ 30641 / 회문 끝말잇기
PS

[PS] BOJ 30641 / 회문 끝말잇기

문제 링크: https://www.acmicpc.net/problem/30641 Thumbnail: Photo by Sophia Richards (Unsplash) 수학 문제는 늘 머리가 아픕니다.. 풀이 거듭제곱 속도 개선하기 회문의 길이는 최대 \(10^6\)이므로, 등비수열 꼴의 항을 점화식으로 (반복문으로 직접 곱해가며) 계산하게 되면 상당한 수의 거듭제곱 연산(정확히는 같은 수를 여러번 곱하는 과정)이 수행된다.
6 min read
[PS] BOJ 6568 / 귀도 반 로썸은 크리스마스날 심심하다고 파이썬을 만들었다
PS

[PS] BOJ 6568 / 귀도 반 로썸은 크리스마스날 심심하다고 파이썬을 만들었다

문제 링크: https://www.acmicpc.net/problem/6568 Thumbnail: Photo by Amr Taha™ (Unsplash) 문득 solved.ac 디스코드를 둘러보다가 보인 문제인데, 재밌어 보여서 풀어봤습니다. 간만에 구현 문제라 Python3에 타입힌트랑 주석까지 써가면서 만들었네요 ㅎㅎ 풀이 귀도 반 로썸은 크리스마스날 심심하다고 파이썬을 만들었다 귀도 반 로썸은 정말 심심하다고 파이썬을 만들어버렸는데, 이 문제에서도
9 min read
[PS] BOJ 32373 / 장난감 자물쇠
PS

[PS] BOJ 32373 / 장난감 자물쇠

문제 링크: https://www.acmicpc.net/problem/32373 Thumbnail: Photo by Susan Holt Simpson (Unsplash) 시간초과와 싸우며 유익한 고민을 했던 문제였습니다 ㅎㅎ 풀이 어떻게 정렬을 할 것인가? 문제의 조건에서,  주어진 양의 정수 \(k\)에 대하여 수열에서 거리가 \(k\)인 쌍만 교환할 수 있다고 명시했습니다. 따라서, 일반적인 정렬 방법으로는 조건이 지켜지지
6 min read
[PS] BOJ 12834 / 주간 미팅
PS

[PS] BOJ 12834 / 주간 미팅

문제 링크: https://www.acmicpc.net/problem/12834 Thumbnail: Photo by Ugne Vasyliute (Unsplash) 간만에 그래프 문제 풀어보니까 재밌었습니다 ㅎㅎ 풀이 다익스트라(Dijkstra) vs 플로이드-워샬(Floyd Warshall) 그래프에서 최단 경로를 찾는 문제이므로, 생각할 수 있는 풀이 방법은 다익스트라(Dijkstra)와 플로이드-워샬(Floyd Warshall)의 2가지가 있습니다. 하지만, 문제의 조건에서 정점의
5 min read
[PS] BOJ 33870 / 빗질의 중요성
PS

[PS] BOJ 33870 / 빗질의 중요성

문제 링크: https://www.acmicpc.net/problem/33870 Thumbnail: Photo by charlesdeluvio (Unsplash) 애완견의 빗질은 항상 잊지 말고 해줍시다~ 풀이 구현 별다른 어려움 없이, 문제 조건을 그대로 구현하면 되는 문제였습니다. 다만, 답을 맞히기까지 여러 차례 시행착오를 겪었습니다.. 털 상태 관리 1일차부터 \(M\)일차 까지 강아지 1마리씩 골라 빗고, 만약 이전에
4 min read
[PS] BOJ 15654 / N과 M (5)
PS

[PS] BOJ 15654 / N과 M (5)

문제 링크: https://www.acmicpc.net/problem/15654 Thumbnail: Photo by Brett Jordan (Unsplash) N과 M은 유명한 백트래킹 시리즈입니다. 풀이 백트래킹 (DFS) 백트래킹도 결국은 DFS입니다. 다만, 분기에 진입하기 전에 조건에 맞는지 아닌지를 미리 판단해, 적합하지 않은 분기라면 진입하지 않고 건너뛴다는 차이점이 있습니다. 이번 문제에서는 \(N\)과 \(M\), 그리고 \(N\)개의
2 min read
[PS] BOJ 1235 / 학생 번호
PS

[PS] BOJ 1235 / 학생 번호

문제 링크: https://www.acmicpc.net/problem/1235 Thumbnail: Photo by CX Insight (Unsplash) 풀이 '집합'을 이용한 풀이 집합이란, 동일한 원소가 중복되지 않는 컨테이너 자료구조입니다. (다른 원소를 저장할 수 있는 자료구조) 집합을 구현하는 방법은 이 글에서 다루진 않겠습니다. 이번 풀이에서는 파이썬에 내장된 set를 사용했습니다. 알고리즘은 다음과 같습니다.
1 min read