본문 바로가기

전체 글91

백준(BOJ) 1527 금민수의 개수(Python) 브루트포스 문제. 파이썬 itertools 라이브러리의 product 클래스를 사용하면 문자들의 조합을 모두 뽑아낼 수 있다. 10억 이하의 4와 7로 이루어진 수의 개수는 2^9+2^8+2^7+...이므로 브루트포스로 풀어도 안정권에 든다. 모든 수를 찾아보며 A와 B 사이에 있는 지를 판단해주면 되는 문제. product 클래스를 사용하지 않으려면 DFS나 BFS로 하나하나 확인해줘도 될 것이다. 코드는 다음과 같다. # -*- coding: utf-8 -*- import sys from collections import deque import heapq import bisect import math from itertools import product """ from itertools import .. 2023. 1. 7.
7-8월 PS 및 신촌캠프 총결산 방학의 마무리를 코로나로 하게 되면서, 방학 동안 PS는 얼마나 진행했는지, 목표는 달성했는지 등등 결산을 하고 넘어갈 생각이다. 방학 초기에 블로그를 시작하면서, PS를 좀 제대로 해서 코테 레벨까지 실력을 올리고 튀자는 생각으로 PS를 다시 잡았다. 그렇게 잡은 목표는 골드 문제 150 solve 이상과 백준 플래티넘 달성이었고, 당시 골드 이상 문제를 푼 갯수가 63개였고, 티어는 골드1 초입이었다. 그리고 지금은 플래5 초중반에 골드 이상 문제는 126문제를 풀었다. 플래티넘 달성은 나름 여유있게 성공했지만, 골드 이상 문제 풀기는 실패했다. 초반에는 블로그에 문제 해설 쓰는 것도 재밌고 문제 푸는 것도 재밌고 그래서 계속 문제를 풀었는데, 플래티넘을 찍고 나서부터는 점점 의욕이 없어져 문제 풀기.. 2022. 8. 30.
백준(BOJ) 25498 핸들 뭘로 하지(Python) 대표 BFS 문제. 1번 노드부터 시작해서 갈 수 있는 노드 중 가장 사전 순으로 뒤에 있는 문자로 이동하면서 ans에 그 문자를 추가해주면 된다. 만약 그 문자를 가진 노드가 2개 이상인 경우 그 문자를 가진 모든 노드에 대해 탐색을 진행해야 한다. 이를 해결하기 위해 한 노드에서 갈 수 있는 노드 중 가장 사전 순으로 뒤에 있는 문자의 노드를 모두 담은 리스트와 현재 문자 길이를 queue에 넣고 빼는 식으로 구현했다. 코드는 다음과 같다. # -*- coding: utf-8 -*- import sys from collections import deque import heapq import bisect """ import math from itertools import combinations from.. 2022. 8. 23.
민초단 8월 19일 기준으로 코드포스 민트를 찍었다. 사실 거품이 좀 낀 것 같은데 일단 티어는 민트라고 하니 그런갑다 하고 판수를 늘려볼 생각이다. 총 6번의 라이브를 참여했고, 그 중 첫 2번은 이전 글에서 기록했다. 나머지 코포를 기록하고, 후기를 적어볼까 한다. 1. 8/6 Codeforces Round #812 (Div. 2) 처음으로 블루 퍼포를 받은 라이브. 이 라이브를 기점으로 그린을 달성했다. ABC를 42분 만에 풀고 D를 풀기 시작했는데, Interactive 문제를 이때 처음 만났다. flush를 써서 입력을 받고 하는데 계속 에러가 터지길래 스터디 톡방에도 물어보고 했지만 결국 시간 내에 풀진 못했다. 결국 3솔로 마무리하고 다른 사람들이 푼 D번 파이썬 코드를 보는데, 그냥 바로 입력받.. 2022. 8. 19.
7월은 대실패의 달 결과적으로 7월에 하고자 했던 프로젝트는 모두 실패했다. 프로젝트의 결과가 잘 나오고 못 나오고의 문제가 아니다. 애초에 프로젝트 진행이 매우 지지부진했던 것이 문제였다. ​ 일단 언리얼 게임 개발이나 웹 개발은 손도 못 댔다. 금융 AI 쪽은 원래 쓰려던 크레온 API 대신 CYBOS API를 사용해 분 단위 주가 데이터를 받아오는 것까지만 구현했다. 기업 선정이고 AI 코드 리뷰고 제대로 한 게 없으니 참 개인적으로 마음에 들지 않는 결과다. ​ 결과적으로 왜 이렇게 됐나 생각을 해보니, 두 가지 정도의 이유가 있었다. ​ 첫 번째는 동기부여. 프로젝트를 진행해야겠다는 동기부여가 전혀 되지 않았다. 당장에 프로젝트를 진행해서 뭔가를 하겠다는 뚜렷한 목적성이 없이, 무작정 공부 용도로 프로젝트를 진행하.. 2022. 8. 18.
백준(BOJ) 16236 아기 상어(Python) BFS 문제. 아기 상어가 있는 위치로부터 같은 거리에 있는 물고기들 중 먹을 수 있는 물고기의 x,y좌표를 모두 저장한 뒤, 물고기의 좌표를 x,y좌표 순으로 오름차순 정렬해서 첫 번째 위치로 상어가 이동해 물고기를 먹는다. 만약 해당 거리에 물고기가 없다면 거리를 1 증가시켜 다시 물고기를 탐색한다. 나머지는 문제에서 주어진 대로 처리했다. 코드는 다음과 같다. # -*- coding: utf-8 -*- import sys from collections import deque import heapq import bisect """ import math from itertools import combinations from itertools import combinations_with_replaceme.. 2022. 8. 16.