목록전체 글 (88)
블로그 언저리인 무언가
금요일에 42 서울 3기의 라 피신 결과를 발표했다. 원래 이번 주라고만 되어 있었어서 일요일쯤에 나올 줄 알았는데 금요일 오전 9시 42분에 발표해주었다. 정말 42 컨셉하나는 기가 막히게 지키는 모습이다. 결과는 다행히 합격이었다. 바로 다음주인 21일부터 본과정에 들어가게 되었는데 아마 나는 6개월~1년 정도 휴학하고 본과정을 진행하다가 sw업체로 산업체를 가는게 목표인 상황이다. 이것저것 초대장을 받고 읽어보는데 나는 본과정에 들어오면 조금은 편해질 줄 알았건만 앞 기수 카뎃분들 말씀을 들어보면 그런 것 같지도 않다. 이러다가 블랙홀로 잘려서 내가 원하는 만큼 수료도 못하고 본과정을 그만두게 되는건 아닌지 좀 걱정되긴 한다. 나는 개인적으로 오프라인에서 진행하고 싶었지만 코로나 19로 인한 사회적..
문제 : 1916 최소비용 구하기 1916번: 최소비용 구하기 첫째 줄에 도시의 개수 N(1 ≤ N ≤ 1,000)이 주어지고 둘째 줄에는 버스의 개수 M(1 ≤ M ≤ 100,000)이 주어진다. 그리고 셋째 줄부터 M+2줄까지 다음과 같은 버스의 정보가 주어진다. 먼저 처음에는 그 www.acmicpc.net 도시의 개수와 도시들 간에 운행하는 버스의 비용이 주어졌을 때 최소비용으로 이동하는 금액을 출력하는 문제이다. 다익스트라 알고리즘을 이용해서 해결하면 최소비용을 쉽게 구할 수 있다. Code #include #define ll long long #define INF 1e9+7 using namespace std; struct ABC{ ll idx, dst; ABC() {} ABC(ll idx, ..
문제 : 9375 패션왕 신혜빈 9375번: 패션왕 신해빈 첫 번째 테스트 케이스는 headgear에 해당하는 의상이 hat, turban이며 eyewear에 해당하는 의상이 sunglasses이므로 (hat), (turban), (sunglasses), (hat,sunglasses), (turban,sunglasses)로 총 5가지 이다. www.acmicpc.net 의상의 수와 이름이 주어졌을 때 맨몸이 아니도록 옷들의 조합의 수를 찾아서 출력하는 문제이다. 같은 의상의 종류를 센 후 +1씩 해서 곱해 전체 조합의 수를 세고 하나도 입지 않는 것은 불가능하므로 1을 빼서 출력하면 된다. Code #include #define ll long long using namespace std; ll N; ma..
문제 : 1080 행렬 1080번: 행렬 첫째 줄에 행렬의 크기 N M이 주어진다. N과 M은 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에는 행렬 A가 주어지고, 그 다음줄부터 N개의 줄에는 행렬 B가 주어진다. www.acmicpc.net 행렬 A와 행렬 B가 주어질 때 3*3 크기의 모든 원소를 뒤집어서 행렬 A를 행렬 B로 만드는 최소 횟수를 구하는 문제이다. 그리디 하게 앞 원소부터 모두 뒤집어 본 후 불가능한 경우를 체크해주면 된다. Code #include #define ll long long using namespace std; ll N, M, ans; string x[55], y[55]; int main(){ ios::sync_with_stdio(0); cin.tie(0); ..
문제 : 1074 Z 1074번: Z 한수는 2차원 배열 (항상 2^N * 2^N 크기이다)을 Z모양으로 탐색하려고 한다. 예를 들어, 2*2배열을 왼쪽 위칸, 오른쪽 위칸, 왼쪽 아래칸, 오른쪽 아래칸 순서대로 방문하면 Z모양이다. 만약, 2차원 www.acmicpc.net 2차원 배열을 Z자 모양으로 순회 헸을 때 주어진 좌표를 몇 번째로 방문하는지 출력하는 문제이다. x, y좌표의 기준과 현재 나눌 정사각형의 한 변의 길이를 정보로 주고 분할 정복을 이용해 해결하면 된다. Code #include #define ll long long using namespace std; ll N, r, c; ll f(ll x, ll y, ll len){ if (len==0) return 0; if (r=y) ret..
문제 : 1138 한 줄로 서기 1138번: 한 줄로 서기 첫째 줄에 사람의 수 N이 주어진다. N은 10보다 작거나 같은 자연수이다. 둘째 줄에는 키가 1인 사람부터 차례대로 자기보다 키가 큰 사람이 왼쪽에 몇 명이 있었는지 주어진다. i번째 수는 0보다 www.acmicpc.net 사람의 수와 그 사람의 왼쪽에 있는 키가 큰사람의 수가 주어졌을 때 줄을 어떻게 세워야 하는지 출력하는 문제이다. 자신보다 키가 큰 사람이 왼쪽에 그 숫자만큼 위치하기 위해서는 최소한 그만큼의 빈 공간이 있어야 하는 것을 전제로 그리디 하게 접근하면 쉽게 풀 수 있다. Code #include #define ll long long using namespace std; ll N, arr[10]; int main(){ ios:..
어제인가 그제인가 백준 1000솔브를 찍었다. 뭔가 1000솔브 기념으로 좀 어려운 문제를 풀어서 장식할까 했는데 귀찮아서 그냥 실버따리 문제로 찍게 되었다. 처음 PS 시작할 때는 1000문제 정도 풀면 잘하는 사람이 되어있을 줄 알았는데 쉬운 구현 문제 날먹으로 어느새 1000문제를 넘기게 되었다. 정작 내가 1000솔브를 찍어보니 문제수는 크게 의미가 없고 다양한 알고리즘을 알고 어려운 문제룰 푸는 게 더 중요한 거 같다. 내가 문제 푼 비율을 확인해보면 브론즈가 50%가 넘는데 진짜 이문제들은 내 실력에 하등 도움이 안 되는 문제들인 거 같다. 자주 쓰는 알고리즘들이 아니면 맨날 까먹어서 내 옛날 코드들을 찾아보게 되는데 뭔가 글을 정리해서 내가 참조할 수 있도록 블로그에 글을 쓸까 생각 중이다...