🔗 10815: 숫자 카드📌오늘의 학습 키워드시간 문제로 hash를 사용해야한다. python의 경우 dictionary를 사용하면 된다.✨공부한 내용 본인의 언어로 정리하기for문을 2번 사용하면 시간 초과로 통과 불가~ 그렇다면 hash 사용하기~📚오늘의 회고어떤 문제가 있었고, 나는 어떤 시도를 했는지for문을 사용하면 시간 초과가 일어났다. 어떻게 해결했는지hash를 사용했다.무엇을 새롭게 알았는지😳[🤓문제 해결 코드]import sysN = sys.stdin.readline()N_list = sys.stdin.readline().split()M = sys.stdin.readline()M_list = sys.stdin.readline().split()answer = []N_dict = {..
🔗 H-Index 📌오늘의 학습 키워드문제를 있는 그대로 읽고 해결하려고 했다. ✨공부한 내용 본인의 언어로 정리하기이전 스터디 때 나왔던 문제였는데 안 보고 다시 풀어보려고 했고 비교해 보니까 조금 코드가 간단해졌다.📚오늘의 회고어떤 문제가 있었고, 나는 어떤 시도를 했는지filter를 이용해 문제 그대로 코드로 옮기려고 했다.어떻게 해결했는지가장 큰 수에서 시작해서 줄여오면서 조건을 만족하도록 했다.무엇을 새롭게 알았는지😏내일 학습할 것은 무엇인지재귀..[🤓문제 해결 코드]def solution(citations): h = max(citations) while True: citations_up = list(filter(lambda x: x >= h, citations)..
🔗카드 뭉치 📌오늘의 학습 키워드쉬운 문제✨공부한 내용 본인의 언어로 정리하기리스트 사용📚오늘의 회고흠... 미들러 문제 치고 너무 쉬운거 같다..[🤓문제 해결 코드]def solution(cards1, cards2, goal): answer = '' for word in goal: if cards1 and cards1[0] == word: cards1.pop(0) continue if cards2 and cards2[0] == word: cards2.pop(0) continue return "No" return "Yes"
🔗 이중우선순위큐 📌오늘의 학습 키워드Heap 문제였고 어렵지 않았다.✨공부한 내용 본인의 언어로 정리하기Heap을 사용하면 가장 작은 요소를 뽑아 낼 수 있으나 가장 큰 요소는 다른 처리를 해줘야 한다. 📚오늘의 회고어떤 문제가 있었고, 나는 어떤 시도를 했는지Heap을 사용하면 쉽게 해결할 수 있었다. 어떻게 해결했는지가장 큰 요소를 뽑아내는 방법으로는 list로 바꿔준 뒤에 sort 하고 pop을 했다.무엇을 새롭게 알았는지heapq를 list로 변환하면 sort 된 리스트를 반환하는지 긴가민가 했는데 아닌거 같다. sort를 하고 안하고 했을 때 테스트 케이스 1개를 통과 유무가 달라졌기 때문이다.내일 학습할 것은 무엇인지진짜로 재귀 공부한다.[🤓문제 해결 코드]import heapqd..
🔗 더 맵게 📌오늘의 학습 키워드힙이다 오늘은! 힙을 사용해야 효율성 테스트 통과 가능하다~✨공부한 내용 본인의 언어로 정리하기힙은 우선순위큐이다. 힙을 사용하면 최소인 요소를 뽑을 때 좋은 효율로 실행 가능하다.📚오늘의 회고어떤 문제가 있었고, 나는 어떤 시도를 했는지사실 저번에 풀었던 문제다! 근데 또 오랜만이라 그런지 바로 힙이 생각이 안나고 리스트로 풀고자했다. 😭어떻게 해결했는지정확도는 통과하지만 효율성에서 탈락! 힙으로 고치고 조건을 추가해 더 실행속도가 빠르도록 했더니 통과했다.무엇을 새롭게 알았는지while 문을 사용할 때 종료할 수 있으면 최대한 빨리 하자. while 조건에 넣지 말고 실행중에 break 할 수 있으면 그렇게 하기내일 학습할 것은 무엇인지재귀... [🤓문제 해..
🔗 기능개발📌오늘의 학습 키워드큐를 사용하는 문제였다! 간단하게 생각하자.✨공부한 내용 본인의 언어로 정리하기문제를 풀 때 고려하지 않아도 되는 요소들은 버리고 꼭 필요한 것만 가지고 간단하게 생각하면 좋다.📚오늘의 회고어떤 문제가 있었고, 나는 어떤 시도를 했는지오늘은 각 작업이 주어지고, 그 작업을 수행하는 속도가 주어졌다.조건은 앞 순서의 작업이 완료되어야 그다음 작업을 같이 완료시킬 수 있다.그래서 while문을 통해 각각 매 순환을 돌며 작업현황을 업데이트 시켜주었고 완료된 것이 있을 때 한꺼번에 큐에서 빼줬다.어떻게 해결했는지처음에 progress를 빼줄 때 speed에서도 해당 속도를 빼줬어야 했는데 빼주지 않아서 문제가 생겼으나 금방 고쳤다.무엇을 새롭게 알았는지🥑내일 학습할 것은 ..
🔗 하노이의 탑 📌오늘의 학습 키워드오늘은 유명한 하노이의 탑 문제가 나왔다. 재귀를 대표하는 문제로 생각을 좀 해야 한다고 생각한다. ✨공부한 내용 본인의 언어로 정리하기문제를 나눠서 생각하는 방법을 알아야한다. 그 과정에서 중요한 것들만 살리고 다른 것들은 묵음 처리(?) 해버리는 선택적 집중 능력!여기에서도 가장 위에있는 블록만 생각하고 나머지는 한 뭉텅이로 생각한 다음에 그것을 그대로 재귀로 돌려야 한다. 📚오늘의 회고어떤 문제가 있었고, 나는 어떤 시도를 했는지처음 하노이의 탑 문제를 푼 지 한 5년이 지난 거 같은데 이번에도 시원치 않게 했다.. 문제에서 1, 2, 3개의 기둥이 있고 1에 있는 것들을 모두 3 기둥으로 옮겨야 한다. 그렇다면 제일 위의 것을 2 기둥으로 옮기고 아래 전..
이번주는 코드 트리로 공부를 조금 해봤다. 사실 이번주부터 시작인 줄 알고 들어갔으나 저번주부터였다는 사실을 알고 반성하며..확실히 커리큘럼대로 학습하니까 내가 너무 맨땅에 헤딩하는 느낌이었다는 것을 느꼈다. 시뮬레이션 2 - dx, dy techniquedx = [1, 0, -1, 0]dy = [0, 1, 0, -1]이렇게 설정해 두고 갖다 쓰는 방식인데 회전 방향이나 문제가 요하는 부분에 따라 유연하게 배열을 구성하면 된다. 예전에도 비슷한 유형의 문제를 이상하게 풀었던 기억이 있는데 도구가 하나 더 생긴 느낌이다. 완전 탐색 1, 2가끔은 복잡하게 생각하는 것보다 완전 탐색이 쉬울 때가 있다. 일단 완전 탐색으로 생각을 하고 만약 시간초과가 뜬다면 부가적인 부분을 덜어내는 것이 좋은 방법이라고 생..