분류 전체보기
[파이썬 | Python] 트라이 (Trie) 자료구조
문자열은 항상 어렵다. KMP도 그렇고, digit으로 정렬하는 것도 그렇고, 알면 알수록 머리아파지는 분야. 그만큼 어렵게 만들면 훨씬 어렵게도 만들 수 있다는 이야기겠지. 오늘은 트라이를 공부했다. Radix tree / Prefix tree 라고도 불리는데, 한 단어의 접두사(접두어)를 모두 저장하고 있다. (해당 단어에 도달하기까지의 문자들을 저장한다) donghoon 이라는 단어를 보면, dong 도 접두사가 될 수 있고, do 도 접두사가 될 수 있다. 트라이에서는 이 단어들이 서로 포함관계에 있다는 것을 알려준다. 트라이에 "app", "ant", "apple"이라는 단어들을 저장한다고 하자. 트라이에는 지금까지의 모든 단어의 자취를 저장한다고 했다. 단어의 각 글자마다, 존재하지 않으면 새..
[프로그래머스 | Programmers] 월간 코드 챌린지 시즌2 5월 문제풀이
프로그래머스에서 월간 코드 챌린지를 진행했다 ! 시간이 적절한 시간대에 잡혀서 여유롭게 참여할 수 있었다. 4월달에 한 번, 이번 달에 한 번이 시즌 2 챌린지였는데, 나는 이번 챌린지를 두 번째 대회가 돼서야 접했다. 두 번째 대회까지 총 8문제 중에 4문제만 풀어도 이벤트에 응모할 수 있다는데, 이번에 3문제를 풀면서 아쉽게 응모는 하지 못했다. 이번 달 챌린지에서는 6546명 중 53위를 달성했다 ! 개인적으로 DP가 굉장히 약한 편이라고 생각하는데, 이번 문제셋에서는 구현 / 그리디 / 자료구조 / 그래프 쪽으로 출제돼서 3문제를 맞았다. 1. 약수의 개수와 덧셈 약수의 개수가 짝수면 더하고, 홀수면 빼야 한다. 약수의 개수가 홀수인 경우는 제곱수인 경우이고, 수의 범위가 $1000$ 이니까 $3..
[백준 | BOJ] 숙명여자대학교 SMUPC 풀어보기
13시부터 17시까지 4시간짜리 오픈콘테스트가 열렸는데, 다른 문제 푸느라 30분동안밖에 못 풀었다. 오늘 돼서 아침에 문제 훑어보고 풀이. 무난하고 재밌었던 문제셋이지만, 한 쪽에 치우쳐진 알고리즘 셋이라는 점이 아쉽다. 제1회 숙명여자대학교 교내 알고리즘 경진대회 (SMUPC) Open www.acmicpc.net 21734: SMUPC의 등장 각 알파벳의 아스키 코드를 구한 뒤에, 각 자리수를 더한 만큼 알파벳을 출력하면 된다. for i in input(): print(i * sum(list(map(int, list(str(ord(i))))))) 21735: 눈덩이 굴리기 dp로 풀다가 시간까지 저장을 어떻게 하지,, 라는 생각에 대회날에는 넘기고 아침에 다시 보니 dfs로 파고내려가면 됐던 문제..