본문 바로가기

알고리즘 PS19

[2022] 6 & 7월 PS 기록, 그리고 현재 (+PS 어떻게 공부했는지) 오랜만에 PS 기록을 쓴다. 왜 이렇게 오랜만에 쓰냐... 실은 여기에 슬픈 사정이 있다. PS기록만 안 올렸지, 8월까진 열심히 1일 1PS를 지키고 있었는데 8월 8일 폭우가 온 날, 딱 서울에 있었어서 정신없어서 백준 문제를 못 풀었고 그렇게 내 스트릭은 끊겼다... 그리고 다시 PS를 시작하지 않은 이유는 내가 7월에 42서울을 시작하고 여기에 집중하느라 백준 문제를 풀 시간이 없어서 브론즈 문제들로 스트릭을 "연명"하고 있던 것이나 마찬가지였다. 예시로, 6월에는 골드 문제들도 푸는 등 차근차근 어려운 문제들을 풀고 그랬는데 7월에는 거의 브론즈 문제들만 풀었다. 스트릭이 아까워서 풀고는 있었지만, 스스로도 이것이 과연 맞는 것일까, 이게 나에게 도움이 되는 일인가 생각하고 있었다. PS를 하다.. 2023. 2. 25.
[백준/Python] 알고리즘 수업 - 선택 정렬 시리즈 문제 해결 팁 (23881 ~ 23900) 알고리즘 수업 시리즈 문제들은 의사 코드를 보고 푸는 문제다. 우선 알고리즘 수업 - 선택 정렬 1 (23881), 이 문제는 계속 시간 초과가 떠서 골머리를 앓았다. 정렬 알고리즘을 함수로 구현하면 해결된다. 더 자세히 말하자면 정렬하는 코드를 함수로 만들어 함수를 실행하면 시간 초과가 나지 않는다. 알고리즘 수업 - 선택 정렬 3 (23883), 이 문제는 배열의 크기가 늘어 시간 초과가 난다. 이 시간 초과를 해결하기 위해서 가장 큰 수를 찾는 부분을 heap을 사용해서 해결했다. 가장 큰 수를 찾아 정렬하고 K번째에 도달했다면 바로 리턴을 해주었더니 시간초과가 나지 않았다. 알고리즘 수업 - 선택 정렬 4 (23884) 문제는 23883번 문제를 풀었다면 크게 어렵지 않다. 23883번 코드에서 .. 2022. 6. 30.
[2022] 4&5월 PS 기록 개인적인 사정으로 4월과 5월은 바빠서 PS 기록을 자세히 남기지 못했다ㅠㅠ 알고리즘 공부할 시간도 부족해 브론즈 문제들로 연명했다... 그전까지는 계속 상승세를 유지하던 AC Rating 바로 하락세를 맞았다. 지금(6월)에 다시 수복하는 중이다. 4월에는 총 30문제를 풀었으며 29문제를(96.6%) 스스로 풀었다. (브론즈만 풀었으니까....) 5월에는 총 46문제를 풀었으며 자세한 기록을 남기지 못했다. 그나마 기록이 남아있는 20문제 중 11개만 스스로 풀었으니 55%이다. 5월에는 골드 문제의 비중이 전보다 늘었다. 딱히 어떤 알고리즘을 주로 공부하진 않았다. 4월에는 유의미한 성과가 하나 있었는데 바로 새싹 7단계 뱃지를 획득했다...!!! 영롱하다 영롱해. 지금까지 노력의 성과가 눈에 보이.. 2022. 6. 18.
[2022] 3월 PS 기록 3월은 까먹고 백준 기록을 안 찍어놨다...;; (실은 기록하기 귀찮아서 차일피일 미루다... 오늘까지 왔네...ㅎ) 우선 3월에는 골드 5에서 골드 4로 레벨 업했고, 36문제를 풀었다. 3월 31일까지 총 205문제를 풀었으며 현재(6월 18일)까지 스트릭 유지 중이다. 차트에서 볼 수 있다시피, 실버 문제를 주로 풀었다. 다만 저번 달(2월)과 다른 점은, 골드 문제의 비중이 늘었다...! 3퍼센트이지만 앞으로 골드 문제의 비중을 늘려나가는 것이 목표다. 36개의 문제 중 23문제를(63.89%) 스스로 풀었으며, 저번 달보다(65.71%) 1.82% 정도 떨어졌는데 골드 문제의 개수가 늘어서 그러므로 스스로 푼 문제의 비중은 비슷하다. 이번 달에는 이분/이진 탐색, DFS/BFS, 백트래킹 문제들.. 2022. 6. 18.
[Python] 재귀함수 재귀함수란? 아마 다들 어디선가 이 글을 한 번쯤은 읽어봤을 것이다. (이거 보고 웃으면 빼빡 개발자...) 개발자들이 썰렁 개그에 진심인지라 개발자 커뮤니티에 재귀에 관해서 물어보면 꼭 이 농담이 나온다. 심지어 백준에는 이런 문제도 있다. 17478번: 재귀함수가 뭔가요? 평소에 질문을 잘 받아주기로 유명한 중앙대학교의 JH 교수님은 학생들로부터 재귀함수가 무엇인지에 대하여 많은 질문을 받아왔다. 매번 질문을 잘 받아주셨던 JH 교수님이지만 그는 중앙대 www.acmicpc.net 필자도 처음에는 저게 무슨 소리야 했는데 지금 다시 보니 재귀에 대해서 꽤나 잘 설명한 유머다. 이렇게 개발자화가 되는 것인가... 그래서 진짜 재귀란? 재귀함수는(이하 재귀) 자기 자신을 호출하는 함수다. 맞는 정의이지만.. 2022. 6. 12.
[Python] DFS & BFS DFS & BFS 란? 먼저 읽으면 좋은 글: [Python] 그래프 (인접 행렬, 인접 리스트) + DFS/BFS를 배우기 앞서 알아야 할 개념들 (탐색 알고리즘, 자료구조) 위에 글에서도 언급했듯, DFS(Depth-First Search)와 BFS(Breadth-First Search)는 그래프 탐색 알고리즘(Graph traversal algorithm)이다. 그래프 탐색 알고리즘이란, 그래프의 모든 꼭짓점(Node 또는 Vertex라 한다)을 방문하는 알고리즘을 의미한다. DFS vs BFS DFS와 BFS의 차이점은 바로 노드 방문 순서이다. DFS DFS는 깊이 우선 탐색이라는 그 이름답게 그래프의 깊은 부분을 우선적으로 탐색하는 알고리즘이다. 스택 자료구조를 사용하여 그래프의 가장 깊은 곳.. 2022. 3. 19.