목록전체 글 (88)
블로그 언저리인 무언가
문제 : 2020 ICPC Seoul Regional 예선 ICPC Seoul Regional 2020 예선 (ProblemSet / Scoreboard) – ACM-ICPC Korea Regional Site icpckorea.org 어제는 2020 ICPC Seoul Regional 예선을 쳤다. 작년 ICPC가 끝난 이후로 PS공부를 반쯤 때려치운 상태였는데 한 2-3주 남기고 허겁지겁 공부를 다시 하다 보니 확실히 작년에 비해서 코딩 실력이 떨어진 것이 체감되었다. 설상가상으로 원래 팀원이었던 친구가 코로나 19 때문에 2학기를 휴학하고 군대를 가기로 결정해서 급하게 팀원을 구해 참가하게 되었다. 코로나 때문에 덩달아 교내 대회도 취소되어서 친구 자취방에 모여 대회를 진행했다. 이번에도 당연히 등..
문제 : 18116 로봇 조립 18116번: 로봇 조립 성규는 로봇을 조립해야 한다. 상자 안에는 여러 로봇의 부품들이 섞여 있다. 그런데 어떤 부품이 어느 로봇의 부품인지 표시가 되어있지 않다. 호재는 전자과라서 두 부품을 보면 같은 로봇의 � www.acmicpc.net 서로 다른 부품이 2개가 주어지고 두 부품이 같은 로봇의 부품이란 것을 알려줄 때, 어떤 로봇의 현재까지 알아낸 부품 개수를 출력하면 되는 문제이다. UnionFind를 사용해 각 부품의 집합을 합쳐주고, 집합을 합칠 때 집합의 크기도 따로 저장해 합쳐주면 된다. Code #include #define ll long long using namespace std; ll N, arr[1000005], cnt[1000005]; ll Fin..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/b4dtM6/btqKjcbF6hc/K4hrbykmOMDGwbDbDmd7H0/img.gif)
이번에도 좀 디자인적 부분을 수정하고 편의 기능을 추가하기로 했다. 저번에 점수가 바뀔 때 모션이 나오도록 만들었는데 점수가 이동할 때 사용자가 몇 점을 얻는지 알려주지 않으므로 이를 알려주는 부분이 있으면 좋을 것 같아 만들었다. 또 뭘 만들까 곰곰이 생각해보다 현재까지의 점수 변동 기록을 볼 수 있었으면 좋겠다는 생각이 들어서 점수 기록표를 만들기로 했다. 만들다 보니 입력창 내부에서 스크롤을 만드는 법을 몰라 고생했는데 크기가 정해진 것에서만 스크롤이 가능해 입력창 전체를 스크롤하는 게 아니라 그리드를 스크롤해야 한다는 사실을 배웠다. ▶▶▶ 구경하러가기 ◀◀◀
문제 : 13140 Hello World! 13140번: Hello World! N이 주어질 때 hello + world = N을 만족하는 서로 다른 한 자리 자연수(0 포함) d, e, h, l, o, r, w를 구해서 아래 그림과 같은 형태로 출력하는 프로그램을 작성하여라. 단, h와 w는 0이 될 수 없다. www.acmicpc.net 숫자 N이 주어질 때, hello + world = N을 만족하는 서로 다른 한자리 자연수 d, e, h, l, o, r, w를 출력하는 문제이다. next_permutation을 사용해 모든 경우의 수를 체크해 만족하는 수를 찾아 출력하면 된다. Code #include #define ll long long using namespace std; ll N; vecto..
문제 : 1162 도로포장 1162번: 도로포장 첫 줄에는 도시의 수 N(1 ≤ N ≤ 10,000)과 도로의 수 M(1 ≤ M ≤ 50,000)과 포장할 도로의 수 K(1 ≤ K ≤ 20)가 공백으로 구분되어 주어진다. M개의 줄에 대해 도로를 연결짓는 두 도시와 도로를 통과하� www.acmicpc.net 길을 지나는데 걸리는 시간과 포장해서 지나는 시간을 0으로 만들 수 있는 횟수가 주어졌을 때, 최소 시간을 구하는 문제이다. visit배열을 만들 때 1차원이 아니라 2차원으로 만든 후 Dijkstra 알고리즘을 사용해 지금까지 포장한 도로 개수당 최솟값을 구하면 된다. 최소 시간이 최대 10,000,000,000까지 커질 수 있으므로 배열의 초기값을 그보다 더 크게 잡아야 하는 것에 주의하자 Co..
오늘은 음력 8월 15일 추석이다. 뭔가 작년에는 추석이 엄청 빨랐던 것 같아서 찾아보니까 9월 13일이었다. 위키백과 켜서 연도별 일정 확인해보니까 거의 다 9월 중순~말이던데 웬일로 이런 걸 기억하고 있는지 모르겠다. 42 서울은 결국 라피씬 일정이 10월 5일에서 10월 12일로 밀렸다. 코로나 19 추석 특별방역기간 때문에 50인 이상 모이는 게 불가능해서 뒤로 밀렸는데, 1단계로 내려가면 전일제, 2단계 유지라면 격일제, 3단계로 올라가면 해제 때까지 연기된다고 한다. ACM-ICPC 예선이 다음 주 금요일이라 차라리 밀린 게 나은 거 같기도 한데 이러다 영원히 밀려서 기말까지 가지만 않았으면 좋겠다. 그래도 요즘에는 하루에 1~2문제씩 골드 정도 난이도로 꾸역꾸역 풀고 있기는 하다. 구현 문제..
문제 : 1446 지름길 1446번: 지름길 첫째 줄에 지름길의 개수 N과 고속도로의 길이 D가 주어진다. N은 12 이하이고, D는 10,000보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에 지름길의 시작 위치, 도착 위치, 지름길의 길이가 주 www.acmicpc.net 고속도로의 길이와 자름길 정보가 주어질때, 운전해야하는 거리의 최솟값을 구하는 문제이다. Dijkstra 알고리즘을 사용해 최단거리를 구하면 된다. Code #include #define ll long long #define INF 1e9+7 using namespace std; struct ABC{ ll idx, dst; ABC() {} ABC(ll idx, ll dst) : idx(idx), dst(dst) {} }; bo..