print('Case \`\`\`로 출력 형식을 지정해도 되겠네.
간단한 별찍기 문제별을 찍기 위해 input을 받고 출력을 어떻게 처리할 건지 묻는 문제.
음.. 이 문제는 우선 search문제인데 target_card에 해당 숫자가 있는지를 검사하는 문제였어요. 이때 우리는 linear search 또는 binary search를 쓸 수 있는데 input data가 10만개가 들어오는 경우 O(n squared)같은 경
소수찾기 문제! 음.. 우선 input을 받고해당 input 을 for loop로 인자를 하나씩 전달하며 소수를 판별해야겠다는 생각을 했다!예외처리로 소수가 아닌 case인 1에 대해서 처리를 해야겠다는 생각을 했다.그리고 가장 중요한 논리 부분으로 i squared
음.. 우선 n= 1인 base case는 무조건 source에서 destination으로 옮기는 경우를 생각 했다.n >= 2이라면 n-1개의 원판을 extra 막대기로 옮기고 1개의 원판을 destination으로 옮기고다시 그 n-1개의 원판을 destinatio
N-queen 문제사실 42서울에서 10-queen을 이미 c로 풀어봤고 그걸 python으로 다시 푼 것이다. 음.. 근데 나는 진짜 완전 잘 했는데 시간 초과가 남... 근데 backtracking을 이 방법 이상으로 구현할 수 없어서 인터넷 찾아보고 pypy3로
음... N queen 문제를 푼 알고리즘과 똑같은 backtracking으로 풀었다. 사실 backtracking 문제는 조건식을 만드는 것이 핵심인 것 같다. 이 문제의 핵심은 결국 중복되는 숫자가 있는지를 판별하는 것! N과 M의 범위도 크지 않기 때문에 그냥 n
n과 m(1) 이랑 완전 똑같은 문제.다만 조건이 하나 추가 되었다. 오름차순만 출력하는 걸로!
어제 자기 전에 수학 문제 슥 풀고 자려고 했는데 30분 동안 안 풀려서 그냥 잤다.. 분명 난 완전 잘 했는데 왜 안 되지 하고 누워서 생각하다보니.. 아, 전부다 나눠서 소인수 출력 후 소수인 case에 대해 else로 처리하면 되겠다는 생각이 들었다. 그럼 이전에
요세푸스 문제Circularlist를 이용해야한다. 이 문제를 풀기 위해 자료구조에 대해 배웠고 결국 풀어냈다!! 음.. 우선 각 node의 object를 생성하는 class와Circular_Linked_list 의 object를 생성했다.traverse()는 data
내가 연습하면서 만들어둔 code를 그대로 활용했다. 따라서 문제에서 요구하는 기능보다 조금 더 기능이 추가되었다.stack을 이용해서 구현했고 아마 list를 이용해도 알고리즘 복잡도 차이가 없기 때문에 속도는 비슷할 것이다. list로 하는 것은 따로 구현하지 않았
이 문제는 Queue에 관한 문제이다. queue를 구현해서 할 수도 있지만 그냥 module에서 구현된 deque를 써서 간단하게 구현했다. 사실 stack은 list로 queue는 deque를 이용하면 더 간단하다! 속도차이가 거의 없기 때문에 굳이 새로운 자료구조
input data 어떤 자료형으로?우선 문제를 풀기위해 input을 어떻게 받을지부터 고민을 했다.node구조로 받아야 할까 아니면 이중 list로 받아야 할까..node구조로 받으면 self.(up, down, left, right) 이렇게 써야할 거 같았고 또 양
아.. 처음에 test case로 넣은 input값 수정 안해서 틀렸다가 두 번째에는 시간초과가 떴다. 왜 그러지 하고 살펴보니 굳이 sort를 할 필요 없는데 sort 후에 pop을 해서 시간복잡도가 최악의 경우에 n^3이었음 ㅋㅋ.. 그래서 code를 sort를 빼
후... 피보나치3를 3시간 넘게 푼 듯..우선 list로 메모이제이션 구현해서 풀려고 했다.근데 리스트의 인덱스가 994를 넘어가면 메모리가 초과되는 한계를 갖고 있었다. 따라서 그러면 내가 필요한 만큼 만들어 쓸 수 있는 SingleLinkedList를 만들어서 풀
stack을 구현하는 문제였음. 그래서 stack class를 만들어서 구현하였음. 음.. 사실 이거 그냥 list 써도 되는데 자료구조 공부하려고 stack을 구현해서 풀었음!! ㅎㅎ
내가 생각한 방법1.list에 저장. 근데 list의 경우 element갯수가 994 이상 저장 안 되는 것을 저번 fibonacci 문제를 풀면서 알고 있음 그래서 만약 단일 단어로 1000개가 들어온다면 틀릴 수밖에 없음. 아니라는 가정 하에 문제를 풀면 1-1 l
어제 처음 보고 문제 이해가 안 되었던 게 기억이 남. 그래서 그냥 아 내일 봐야지 하고 있다가 오늘 일어나서 문제를 보니 이해가 되었다. ㅋㅋㅋ 할많하않.. 그리고 stack을 이제부턴 그냥 list를 이용해서 할 거임. 마찬가지로 deque도 그냥 module 가져
처음에 이 문제를 풀기 위해 그냥 list의 built in function을 이용했다. 근데 시간 초과가 나와서 다시 했음...그래서 어떻게 data를 받아야할까 고민을 하다가 솔직히 나는 node구조로 doubly linked list를 생각했다. 근데 이렇게 하면
우선 문제를 보자마자 BFS 문제라는 것을 파악함. 근데 내가 문제를 너무 어렵게 생각했다...그래서 풀면서도 이게 골드 5라고? 이러면서 풀었음 ㅋㅋ📌 처음 생각음... 토마토의 위치를 모두 파악해서 그것을 어떤 복합타입으로 저장한 후 한 토마토의 BFS를 진행하면
아... ㅋㅋㅋ 문제를 다 풀고 마지막에 디버깅 하느라 넣어놓은 print 함수를 안 빼서 출력초과로 2번 틀림 ㅠㅠㅠㅠㅠㅠ 내 정답률...이 문제는 이전 토마토 문제와 완전 똑같음BFS로 해야하는 것은 당연하고그냥 3차원으로 데이터를 처리하기만 하면 끝! 근데 이전에
이 문제는 DFS, BFS 둘다 풀 수 있는 문제! 📌우선 그래프 문제임을 확인해서 DFS로 할건지 BFS로 할 건지 고민했다.그래서 그냥 재귀함수 구조로 DFS로 풀었음📌visit = False \* (n+1) 을 True 로 바꿔주면서 만약 True이면 더 이상
그냥 한번에 맞춰버려서 깜짝 놀라버림..사실 지금까지 테스트케이스 돌리면서에러가 안 뜬 적이 한번도 없는데테스트 케이스가 한번에 깔끔하게 나와서 어? 해버림..📍우선 BFS로 풀어야 되겠다고 생각했다. DFS는 잘못된 루트를 선택하는 순간 시간이 오래걸릴 것 같다는
첨에 왜 틀렸지 했음.. 난 완전 잘 했는데 계속 틀렸다길래..도저히 이거 말고 모르겠다고 생각이 되어서 결국 답을 봤음. 아... 연결된 노드 구조면 상관없는데 분리된 노드가 존재하는 경우도 살펴봐주어야 했음... 테스트 케이스만 보고 start를 1로 준 내 잘못.
DFS, BFS 둘다 풀 수 있는 문제이미 방문한 곳은 훼손을 시켜서 다시 방문하지 않도록 만들어주면 되는 문제였음. 한 가지 다른 점은 대각선도 고려해줘야 한다는 것! 방문한 곳의 훼손은 data 값을 하나씩 더해서 1이 아닌 상태로 만들어 줬음!!
첨에 쉬울줄 알았는데 생각보다 오래 걸린 문제... 🎯우선 내 접근 일단 순환역인지를 check할 수 있는 기록지 준비하기 순환역이라면 바로 0을 넣어주고 아니라면 거리에 따라 1씩 증가시켜 return 해주기. 로직은 간단한데 구현하는 데에 시간이 좀 오래 걸
🎯전형적인 DFS문제라는 생각이 들었음. 근데 순환 loop를 구하는 서울 지하철 2호선을 이미 풀었기 때문에 더 쉽게 할 수 있었던 것 같다. 다만! 이 문제는 matrix 구조라서 그에 맞게 문제만 변형해주면 되었음! 처음에 에러가 떴었는데 어디서 떴냐면..바로