반응형

알고리즘/codeforces 86

Codeforces Round #756 A부터 C까지 업솔빙

Codeforces Round #756 A부터 C까지 업솔빙 알고리즘 놓은지 1달이 되서 다시 잡은 코드포스이다. 내가 코드포스에서 나오는 문제 유형을 잘 못하는걸로 결론을 내렸다. 하지만 내가 잘 못하는 것을 계속 손 놓고 있으면 그 분야는 계속 못하게 된다. 잘 몰라도 계속 붙잡는것이 필요한 순간. 언젠간 성장하겠지. A. Make Even (*800) 접기/펼치기 문제 설명 창록이에게 $0$이 없는 정수 $n$이 주어진다. 다음 연산을 몇번이고 수행할 수 있다. 왼쪽부터 길이 $l$만큼 $n$의 부분 문자열을 선택한다. 그리고 이 부분 문자열을 뒤집은 다음 원래 자리에 둔다. 창록이는 짝수를 좋아한다. 따라서 이 숫자를 짝수로 만들고 싶다. 그리고 그는 참을성이 별로 없기 때문에 가능한 적은 연산으..

Educational Codeforces Round 119 A부터 C까지 업솔빙

Educational Codeforces Round 119 A부터 C까지 업솔빙 이제는 그냥 해탈했다. 나는 알고리즘을 못한다. rating이 1000이 넘어가면 그냥 못푼다 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ 못풀어서 계속 답을 보고 공부하는 과정을 얼마나 반복을 해야하는지 나는 아직도 의문이다. 하지만 뭐 어떡하겠나. 못하는 사람이면 계속 공부하면서 반복 숙달 해야지. 코드포스 문제 1000개를 풀면 그래도 블루는 가지 않을까? 이번 대회에서 배운 것은 제발 A번 문제는 단순하게 생각하자. 제발 침착하게 문제 풀자 진법 개념을 알고리즘 문제에 적용하기 A. Equal or Not Equal (*800) 접기/펼치기 문제 설명 $n$개의 양의 정수가 원형으로 배열되어 있다. $a_1$와 $a_2$가 붙어있고, ..

Codeforces Round #761 (Div. 2) A부터 C까지 업솔빙

Codeforces Round #761 (Div. 2) A부터 C까지 업솔빙 유난히 case-work가 많은 문제셋이였다. A번부터 3가지 정도 경우의 수를 고민했어야 하는문제, B번은 구성적, C번은 코드포스에서 자주 나오는 유형인 정렬 + 그리디 + index 배열 + 나머지 연산의 성질 문제였다. 하지만 못풀었다. 이제 익숙해서 문제 풀 수 있어야 되는데, 왜 못풀지? 난 아직도 모르겠다. 이제는 그냥 포기 안하고 계속 문제푸는 것을 목표로 하려고한다. 이번 대회에서 배운 것은 while문의 활용 나머지연산의 최댓값 sort와 위치바꾸기 A. Forbidden Subsequence (*800) 접기/펼치기 문제 설명 영어 소문자로만 이루어진 문자열 $S$와 $T$가 주어진다. $T$는 문자열 $ab..

Educational Codeforces Round 118 A부터 C까지 업솔빙

Educational Codeforces Round 118 A부터 C까지 업솔빙 A번에서 뇌절한 문제셋이다. 왜 뇌절했냐고? *900문제가 나와서... *800문제는 이제 쉽게 풀 수 있는데 *900문제는 쉽게 생각하면 안될 것 같다. 어찌 어찌 풀지만 시간이 너무 오래걸린다. 이런 문제를 제때제때 풀어야 실력이 는다고 생각을 하면서 풀어보자. 그리고 또나온 파라매트릭 서치. 안 푼지 며칠이나 지났다고 벌써 까먹었다. 이번에 풀어본 문제가 전형적인 파라매트릭 서치 문제라고 하니까 다시한번 눈도장을 찍어보자. 이번 대회에서 배운 것은 파라매트릭 서치의 기본 문제, 유형 조건 분기 침착하게 하기 A. Long Comparison (*900) 접기/펼치기 문제 설명 지수는 칠판에 두 숫자를 적었다. 두 숫자는..

Codeforces Round #757 (Div. 2) A부터 C까지 업솔빙

Codeforces Round #757 (Div. 2) A부터 C까지 업솔빙 이번에도 B번 문제까지 풀어서 퍼포가 1070정도 나온 대회이다. 솔직히 마지막 문제는 너무 뻔한 이진수 + 조합론 + XOR문제였는데, 아직 경험이 부족해서 문제를 못푼 것 같았다. 이런 문제를 처음 봤었으면 절대로 못풀었겠지만 지금와서 보면 생각보다 코드포스에서 나오는 문제들이 정형화되어있다는 것을 느꼈다. 그런데 느끼기만 하면 뭐해... 풀어야지... 이번 대회에서 배운 것은 자릿수와 이진수 당황하지 않기 A. Divan and a Store (*800) 접기/펼치기 문제 설명 $n$개 초콜릿 바가 있다. $i$번째 초콜릿 바는 $a_i$원이다. 이 값이 $r$원 보다 크면 비싸다고 생각하고, 이 값이 $l$원 보다 작으면..

Educational Codeforces Round 117 A부터 D까지 업솔빙

Educational Codeforces Round 117 A부터 D까지 업솔빙 C번 문제하고 D번 문제가 개인적으로 정말 좋았다고 생각하는 대회이다. C번문제는 이분탐색밖에 모르던 내가 파라메트릭 서치를 알게해줬고, D번 문제는 알고리즘을 공부하려고 정수론을 공부하는 것은 정말 어리석은 짓이라는 것을 깨닫게 해줬다. 이번 대회는 상대적으로 수학이 많이 나왔는데, 수학 문제 특성상 그리디처럼 문제를 온몸 비틀어서 푸는게 아니라 규칙만 딱 찾으면 답이 나와서 기존 대회보다는 답을 구하는 과정만 이해하면 나머지 코딩은 쉬웠다. 이번 대회에서 배운 것은 이분탐색과 파라매트릭 서치 나머지 연산과 나눗셈 연산과 뺄셈 좌표평면이 나오면 꼭 그려서 해보기 A. Distance (*800) 접기/펼치기 문제 설명 두 ..

Codeforces Round #754 (Div. 2) A부터 C까지 업솔빙

Codeforces Round #754 (Div. 2) A부터 C까지 업솔빙 A번문제만 푼 대회 B번 문제는 계속 봐도 해설이 안떠올라서 그나마 만만해 보이는 C번 문제로 넘어갔는데 경우의수 1가지를 못찾아서 못풀었다. *1400난이도 치고는 경우의수 7가지만 찾으면 되는 쉬운 문제 였는데, 못풀어서 아쉬웠다. B번 문제는 이전에 풀었던 C. Rings 랑 비슷한 문제라서 더더욱 폿풀어서 아쉬운 문제였다. 계속 훈련을 하면 언젠가는 단단해 지겠지.. 이번 대회에서 배운 것은 문제에서 제공하는 예제 풀이에 너무 몰입하여 생각하지 않기. A, B, C는 생각보다 쉬운 문제다! 끝까지 경우의수 생각하면서 풀기 A. A.M. Deviation (*800) 접기/펼치기 문제 설명 세 숫자 $a_1, a_2, a_..

Codeforces Round #753 (Div. 3) A부터 D까지 업솔빙

Codeforces Round #753 (Div. 3) A부터 D까지 업솔빙 이번 대회에는 DIV. 3답게 C번까지 풀었지만 D번은 못풀었는데, 내가 마지막에 제출한 틀린 코드에서 pair에 정렬 순서만 바꾸면 풀리는 문제라서 이제는 D번을 풀 수 있는 단계까지 눈앞에 이르렀다. E번 문제는 빡 구현문제인데 원래라면 업솔빙 했어야 하지만 codefore와 atcoder에서 내가 당장 배워야 하는 것은 dp, greedy, constructive, math, implementation, number theory 이기 때문에 pass했다. 이번 대회에서 배운 것은 규칙을 찾는 문제에서는 문제가 하라는 대로 일단 처음 10개항은 써보기 잘 모르겠어도 끝까지 포기하지 말기 접근법이 잘못된 것 같으면 과감히 방향..

Codeforces Round #752 (Div. 2) A부터 D까지 업솔빙

Codeforces Round #752 (Div. 2) A부터 D까지 업솔빙 이번 대회에는 B번 1100 난이도까지 풀었지만 C번부터는 못풀었는데, 이 문제는 푸는 방법까지 알았는데 단 한가지 문장때문에 1시간을 뇌절하다가 못풀었다. 내가 푼 방식을 C번문제에서 설명할텐데, 내가 처음에 푼 코드와 정답 코드를 보면 이게 왜? 틀리지? 라는 생각을 이 글을 읽고 있는 사람 또한 알게 될 것이다. 마지막 D번 문제는 단순한 코드포스식 정수론이라서 업솔빙 할 것이다. 이번 대회에서 배운 것은 XOR연산과 홀수 짝수 반복 학습 최소공배수와 최대공약수, 그리고 배수 약수 찾기 알고리즘 break문의 위험성 수직선에서 나머지 연산의 기하학적 의미 A. Era (*800) 접기/펼치기 문제 설명 소호는 정수 $a_1..

Codeforces Round #737 (Div. 2) A부터 C까지 업솔빙

Codeforces Round #737 (Div. 2) A부터 C까지 업솔빙 사실 코드포스에서 A번 문제가 5분 넘을때 까지 안풀리면 그 대회는 참가하지 않는 것이 RATING에 이로울 정도로 A번 문제를 쉽게 풀 수 있는지 없는지가 중요하다. 이번 대회는 A번 문제를 생각보다 빠르게 풀어서 기분이 좋았다. 하지만 바로 B번부터 막혀서 기분이 안좋았지만 나머지 B, C번 문제가 좋아서 업솔빙을 한다. 이번 대회에서 배운 것은 경로 압축 방법과 value-index pair 배열의 활용 이항계수의 성질 복습 및 dp 제발 정렬하는 것도 생각해보자. A. Ezzat and Two Subsequences (*800) 접기/펼치기 문제 설명 배열 1개가 주어지고 이 배열을 두 subsequences $a$, $..

반응형