본문 바로가기

전체 글

1541 잃어버린 괄호 아... 왜이렇게 어렵지 #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define xx first #define yy second #define all(x) (x).begin(), (x).end() using namespace std; using i64 = long long int; using ii = pair; using iis = pair; using ii64 = pair; using iii = tuple; vector split(string s, string delimit.. 더보기
2021 연말대회 후기 올해도 연말 대회를 나갔다. 처음에 오프라인이어서 지나랑 같이 나가서 저녁을 먹을 예정이었는데 고로나 때문에 온라인으로 바뀌고 그냥 카페가서 문제 풀려고 했다. 근데 문제는 팀이 랜덤이었다ㅠ 팀 나눠지면 그냥 따로 앉아서 해야긋다... 생각했는데 다행히 같은 팀이 됐다. 대학 합격한 것마냥 카페에서 소리질렀다. 지나랑 환경 세팅하고 바로 문제 풀었다. 일단 문제 훑어봐야지~ 했는데 지나 이름이 나오는 문제랑 내 이름 나오는 문제 보고 각자 이름 나오는 문제부터 봤다. 대부분의 문제가 서브테스크로 되어 있어서 우리 팀은 긁자...! 긁어 모으자...! 결심하고 풀었다. 지나가 2번 문제 보는 동안 나는 4번 문제 좀 읽고 못 풀 것 같아서 1번으로 넘어갔다. 뭔가 더 빠르게 풀 수 있을 것 같았는데 생각이.. 더보기
1024 수열의 합 https://danco.tistory.com/30 [1024] 수열의 합 https://www.acmicpc.net/problem/1024 처음에 나누는 수 L을 짝수일 때, 홀수일 때로 나눠서 나온 수를 수열의 가운데 있는 숫자라고 정하고, 그 수 앞뒤로 연속되는 숫자를 출력하는 방식으로 했는데 94%에 danco.tistory.com 어려웠다! 어떻게 풀지 감이 안 잡혀서 결국 다른사람 블로그를 보고 풀었다. #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define xx .. 더보기
1024 수열의 합 [미완] #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define xx first #define yy second #define all(x) (x).begin(), (x).end() using namespace std; using i64 = long long int; using ii = pair; using iis = pair; using ii64 = pair; using iii = tuple; int main() { i64 n, l; scanf("%lld %lld", &n, &l); .. 더보기
1182 부분수열의 합 음음 부분수열이니 구하는 부분이 연결되어 있다는 뜻이고 그럼 투포인터를 쓰면 되겠다 싶었다. -> 아! 아니었다. 음수, 양수가 있어서 투포인터를 쓰기는 어려웠다. 다음으로 N이 20밖에 안 되니 모든 경우를 다 살펴보면 되지 않을까 싶었다. 2중 for문으로 부분수열 다 만들어보면 되지 않나? #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define xx first #define yy second #define all(x) (x).begin(), (x).end() using .. 더보기
14930 구슬 (BEAD) 으악! 개미문제! 어렵다. 아이디어는 알겠는데 약간 마음으로 이해가 안 된다. 둘이 부딪쳤는데 위치는 같다.. 🧐 하나하나 생각해보면 어떻게 돌아가는지 알겠다. 구슬이 부딪쳐도 속도는 같아서 구슬 하나가 움직인 것과 같다. 이럼 또 아니 근데 실제로는 안 움직이잖아요,,, 생각이 드는데 이걸 또 하나하나 움직임을 생각해보면 구슬 하나가 자기 경로로 계속 움직인다는 걸 알게 된다. 그래서 이 문제에 쓰인 아이디어 - 속도는 유지된다 - 구슬 하나가 x + v * t만큼 움직인 위치는 그대로이다 - 구슬의 순서는 유지된다 (부딪혀서 위치가 바뀌지 않으므로) 빨간 구슬이 k번째에 있다고 가정했을 때, 위치를 전부 x + v * t 기준으로 정렬하고 k번째 위치가 빨간 구슬의 위치이다. 아이디어 너무 재밌다. .. 더보기
11664 선분과 점 이분탐색 같은데?? 선분이 주어질 때 최소 길이로 가기 위해 참/거짓 판정을 해야 하는데 어느 방향으로 가야 하냐에서 막혔다. 분류를 보니 삼분탐색이라 되어 있는데 삼분탐색...? 찾아보니 볼록한 경우에서 최대최소를 찾는 경우에 사용한다. 이게 알고보니 선분이 아니라 점과의 거리에 대해서 생각해보면 C에서 거리가 최소고 A, B 방향으로 점이 움직이면서 거리가 멀어지면서 볼록한 함수 형태가 나온다!!! 신기해. 이분탐색은 /---------A---------/----------B--------/ mid 두 구간을 탐색하는데 삼진탐색은 세 구간을 탐색한다. /--------A-------/---------B-------/--------C---------/ mid1 mid2 이제 이진탐색이랑 비슷하게 풀어보.. 더보기
1138 한 줄로 서기 어 어케하지..? 고민을 했는데 일단 N이 10이다. 모든 경우의 수를 계산하더라도 문제가 없다는 뜻이지. 걍 마 다 돌려봐도 되겠다 싶었다. 1. 모든 키 순서를 다 만들어본다 - 1번이 가장 큰 경우, 3번이 가장 큰 경우... 2. 해당 키 순서가 입력이랑 맞는지 확인해본다. -> 아 그런데 키 순서랑 어떻게 서있는지는 관련 없었다.. 결국 머리 아파서 다른 사람의 풀이를 봤다. 아래 순서로 구현하는 것 같다. 1. 그냥 자신보다 키가 큰 사람 수만 확인하면 된다 2. 키가 큰 사람 수만큼 지난 위치에 배치한다. 3. 만약 그 자리에 누가 있다면 좀 더 뒤로 넘어가서 빈자리에 배치한다. https://lovelyunsh.tistory.com/118 [백준] 1138 한 줄로 서기 1. 문제 www... 더보기