본문 바로가기

분류 전체보기

(85)
[LeetCode] 937. Reorder Data in Log Files (문자열 조작) 문제 https://leetcode.com/problems/reorder-data-in-log-files/ Reorder Data in Log Files - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com logs 배열을 입력으로 받는다. 각 로그는 단어의 집합으로 이루어지는데 각 단어들은 공백으로 구분된다. 그리고 첫 번째 단어는 '식별자'라고 부른다. 로그는 두 가지 종류로 나뉜다. 1. Letter-logs : 식별자를 제외한 모든 단어들은 영어 소문자로 구..
[LeetCode] 344. Reverse String (문자열 조작) 문제 https://leetcode.com/problems/reverse-string/ Reverse String - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 문자열을 뒤집는 함수를 만들어보자. 입력은 문자로 구성된 배열이 주어진다. ex) ['h', 'e', 'l', 'l', 'o'] 입력 배열을 in-place로 거꾸로 뒤집어야 한다. no return 내 풀이 class Solution: def reverseString(self, s: List[str..
[LeetCode] 125. Valid Palindrome (문자열 조작) 문제 https://leetcode.com/problems/valid-palindrome/ Valid Palindrome - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 모든 대문자는 소문자로 바꾸고, 알파벳과 숫자가 아닌 문자는 제거하자. 모든 가공을 거친 문자는 앞으로 읽었을 때와 뒤로 읽었을 때가 동일해야 한다. 이것을 펠린드롬이라고 한다. 주어진 문자가 펠린드롬 문자인지 구하자. 내 풀이 시간 : 43ms 주어진 문자열 s에서 알파벳 또는 숫자 형태의 ..
키패드 누르기 (Level 1) 내 풀이 키 패드 숫자를 미리 딕셔너리에 저장했다. n이 키패드 오른쪽에 위치하는 숫자는 오른손, 키패드 왼쪽에 위치하는 숫자는 왼손으로 누르도록 했다. 숫자를 누를 때마다 손의 위치를 업데이트시켰다. n이 키패드 중앙에 위치하는 숫자일 경우, 맨해튼 거리를 구하고 손의 위치를 업데이트시켰다. def solution(numbers, hand): answer = '' dic = {1: [0, 0], 2: [0, 1], 3: [0, 2], 4: [1, 0], 5: [1, 1], 6: [1, 2], 7: [2, 0], 8: [2, 1], 9: [2, 2], 0: [3, 1]} left, right = [3, 0], [3, 2] for n in numbers: if n in [3, 6, 9]: right = d..
Learning Rate Scheduler Learning Rate Learning rate는 gradient를 업데이트할 때 사용되는 보폭이다. Learning rate는 성능에 영향을 주기 때문에 잘못 설정하면 아예 학습이 안되기도 한다. 그렇기 때문에 learning rate를 어떻게 설정할지는 매우 중요하다. 적절한 학습률을 찾는 것은 어렵다. 그래서 이 문제를 해결하기 위해 learning rate schedule가 도입되었다. 처음부터 끝까지 같은 learning rate를 사용할 수도 있지만, 학습 과정에서 learning rate scheduler를 사용하면 더 좋은 성능이 나올 수도 있다. 처음에는 큰 learning rate으로 빠르게 최적화를 하고, 최적값에 가까워질수록 learning rate를 줄여 미세 조정하는 것이 학습..
블로그에 대한 생각 블로그를 또 옮겼다. 티스토리가 나의 4번째 블로그이다. 네이버 블로그 -> 깃헙 블로그 -> 벨로그 -> 티스토리 (참 많이도 옮겼다!!!) 이 정도면 나는 프로 블로그 이사러이다. 블로그를 옮길 때마다 이런 생각을 한다. 이번 블로그에서는 진짜 활동 열심히 할 거야! 결론은 땡! 당신은 틀려먹었습니다. 나의 모태 귀차니즘이 블로그 활동을 막는 것 같다. 나태 지옥아 hoxy 날 기다리고 있니..? 제대로 해야 할게 정해져 있지 않은 지금같이 각 잡고 공부하기 힘들 때 블로그는 참 좋은 매체인 것 같다. 공부를 하고 블로그에 정리하면서 개념을 다잡을 수 있어서 좋다. 특히 내가 이해한 것을 정리하면서 내가 모르는 것을 파악할 수 있다. 모르는 것을 파악했다는 것은 다음에 공부할 것이 생긴다는 것! 물론..
숫자 문자열과 영단어 (Level 1) 문제 https://programmers.co.kr/learn/courses/30/lessons/81301 코딩테스트 연습 - 숫자 문자열과 영단어 네오와 프로도가 숫자놀이를 하고 있습니다. 네오가 프로도에게 숫자를 건넬 때 일부 자릿수를 영단어로 바꾼 카드를 건네주면 프로도는 원래 숫자를 찾는 게임입니다. 다음은 숫자의 일부 자 programmers.co.kr 내 풀이 table의 인덱스를 사용하려고 리스트 1개를 만들었다. s의 원소가 숫자일 때는 바로 answer에 추가하고, 알파벳일 때는 원소를 임의의 변수에 저장한 다음 table에 있는 단어인지 확인하도록 하였다. def solution(s): answer = '' table = ['zero', 'one', 'two', 'three', 'fou..
오픈채팅방 (Level 2) 문제 https://programmers.co.kr/learn/courses/30/lessons/42888 코딩테스트 연습 - 오픈채팅방 오픈채팅방 카카오톡 오픈채팅방에서는 친구가 아닌 사람들과 대화를 할 수 있는데, 본래 닉네임이 아닌 가상의 닉네임을 사용하여 채팅방에 들어갈 수 있다. 신입사원인 김크루는 카카오톡 오 programmers.co.kr 내 풀이 모든 유저는 유저 아이디로 구분하므로, 유저 아이디를 기준으로 딕셔너리를 만든다. record를 돌면서 딕셔너리를 갱신한다. 최종적으로 만들어진 딕셔너리에 기반하여 방을 개설한 사람이 보게 되는 문자열을 만든다. def solution(record): answer = [] dic = dict() for r in record: sen = r.spli..