본문 바로가기

알고리즘33

shake! 2021 참여 및 PS를 마치며... 지난 대회보다 4등 올랐다. ^^ C번 까지는 쉬웠는데 감이 떨어져서 여러 번 틀려버렸다. (아쉽다는 뜻) 이번 대회를 마지막으로 PS는 그만두기로 했다. 긴 실력 정체와 더 이상 대회에서 유의미한 결과를 내지 못함을 인정한다는 뜻이다. 그래도 공부를 열심히 해본 경험이 생겼고, 좋은 친구들도 만들어 지난 2년에 후회는 없다. 졸업까지 남은 3년동안은 개발 공부에 더 열을 올리고 재미있는 웹 장난감도 많이 만들어보려 한다. 내 인생 화이팅!! ㅎㅎ 2022. 1. 15.
2021 인하대학교 프로그래밍 경진대회(IUPC) 참여 팀 수퍼겁쟁이들의 쉼터 (39dll, yuja, 나)로 참여하여 총 일곱 문제를 풀었다. 감이 많이 떨어져 걱정이 많았는데, 운 좋게 최고의 팀원들을 만나 1등 상을 수상했다. ㅎㅎ 나는 A, B, K번을 풀었는데 모두 쉬운 문제라 풀이는 따로 작성하지 않는다. 공식 풀이 대신 이번 대회가 팀 대회라는 부분에서 잘했던 점과 아쉬웠던 점을 되짚어보면.. 우선 yuja님이 대부분의 구현을 맡아주셨다. (감사합니다) 나는 대략적인 풀이를 전달한 뒤 입력파일 생성기 작성과 반례 찾기에 집중했고, 오류 수정에 도움이 될 수 있었다. 다른 문제에 도전하는 것도 좋았겠지만 WA에도 사기를 잃지 않을 수 있었던 점에서 만족스러웠다. 한두 문제 정도 더 풀 수 있었지만, 아쉽게도 그러지 못했던 이유는 1. 최근에 코드포.. 2021. 10. 4.
UCPC 2021 예선 참여 후기 openingsound, 39dll님과 함께 팀 Wrong answer on으로 참여하였다. 나는 B, H 두 문제를 풀었고, 총 다섯 문제를 풀어 64등으로 마감하였다. 비대면으로 별다른 준비 없이 시작했지만, 대회 과정이 즐거웠고 나쁘지 않은 결과로 마무리하게 되어 만족스럽다. 아래는 내가 작성한 풀이와 구현이다. B번 항체 인식 22352번: 항체 인식 첫 번째 줄에는 SP 촬영 결과의 크기를 의미하는 두 정수 $N$과 $M$이 주어진다. ($1 \le N, M \le 30$) 이는 촬영 결과가 세로로 $N$칸, 가로로 $M$칸 크기의 격자라는 것을 의미한다. 다음 $N$개의 줄에는 www.acmicpc.net 처음 상태에서 DSU로 같은 집합끼리 묶는다. 다음 상태에서 바뀐 cell이 속한 집합에.. 2021. 8. 1.
Reply Code Challenge 2021 참여 후기 구글 해시코드 때 만난 youx님이 비슷한 대회를 같이 참여하지 않겠느냐 소개해주셔서 참가했다. 이후 39dll님도 함께하게 되어 3인팀이 되었다. 팀명은 임시로 temp00001로 했는데 결국 그대로 사용했고, 비대면으로 진행하였다. 서로 다른 인터넷 수요(Latency, Connection speed 등)를 가진 건물들을 위해 통신탑?을 적절히 설치하는 문제였다. youx님이 2차원 펜윅트리로 뭔가 하신다길래 다른 방법을 고민했고, 지도를 행정구역마냥 적당한 크기로 쪼개 수요가 많은 쪽에 통신탑을 몰아주는 그리디한 풀이를 택했다. 의외로 나쁘지 않아서 점수가 꽤 올랐고, 일부 통신탑을 직접 옮겨가며 점수를 더 긁었다. 최종 217등으로 마무리했고, 참여자가 적어서 상대적으로 좋아보인다. 지난 대회에선.. 2021. 3. 13.
구글 해시코드 짧은 후기 26일 새벽 39dll, malkoring, youx님과 만나 대회에 참여하게 되었다. 처음엔 굉장히 어색했는데, 다들 즐겜팟인걸 확인하고 어쩌다보니 다들 리듬게임 좀 하던 사람들이라 금새 분위기가 좋아졌다. 대회가 시작되고 39dll님이 빠르게 적당한 코드를 짜내 잠깐이지만 좋은 등수가 나왔다. malkoring님이 데이터를 분석해 주신 뒤론 별 진전이 없었는데, youx님이 코드를 짜 오시고 점수가 800만점 초반대로 많이 올랐다. 사실 나는 별 아이디어가 없었던지라 youx님 코드에서 상수만 조절해가며 70만점 정도 더 긁었다. 최종 2900등 정도 했고, 대회 중 분위기가 워낙 좋아서 아무래도 좋았다. 뒷풀이로 같이 오락실도 갔다. ^-^ 2021. 2. 27.
Codeforces Round #699 (Div. 2) ABC import sys; input = sys.stdin.readline for TEST in range(int(input())): N, M = map(int, input().split()) res = True cnt = [0 for i in range(4)] for c in input().rstrip(): if c=="R": cnt[0] += 1 if c=="U": cnt[1] += 1 if c=="L": cnt[2] += 1 if c=="D": cnt[3] += 1 if N>=0: if N > cnt[0]: res = False else: if -N > cnt[2]: res = False if M>=0: if M > cnt[1]: res = False else: if -M > cnt[3]: res = F.. 2021. 2. 7.