코테준비 백준 #2493 towers 리스트 요소들을 뒤→앞 순서로 스택에 하나씩 추가 스택에 남아있음 = 수신을 받지 못 함 아니면 그냥 요소를 추가하고 다음 인덱스로 넘어간다. 스택이 비어 더이상 pop할 요소가 없거나, 추가하는 요소 < 스택 top 이 될 때까지 계속 pop(). 모든 pop이 끝나면 요소를 추가하고 다음 인덱스로 넘어간다. towers 리스트를 순회하면서 {<탑 번호>:0} 딕셔너리를 생성했... 백준코테준비bojboj [프로그래머스] DFS/BFS - 타겟 넘버 📌 문제 📌 날짜 📌 시도 횟수 💡 Code 💡 문제 해결 방법 💡 새롭게 알게 된 점 ❌ (한번에 맞추지 못한 경우) 오답의 원인 위의 코드를 좀 더 깔끔하게😄... 코테준비코테준비 [JS][프로그래머스 Lv2]게임 맵 최단거리 프로그래머스 Lv2 게임 맵 최단거리 * 문제설명 캐릭터가 상대 팀 진영에 도착하기 위해서 지나가야 하는 칸의 최솟값 return. 단 상태 팀 진영에 도착할 수 없을 때는 -1 return. * 해결방법 최단거리는 너비우선탐색(bfs)가 적절 (stack 보다는 queue 사용) 현재 위치에서 상하좌우 이동 가능 여부 판단 상하좌우가 벽(0)이거나, 행렬의 범위를 벗어났다면 이동불가. 이동... 코테준비코테준비 [JS][프로그래머스 Lv2]땅따먹기 프로그래머스 Lv2 땅따먹기 * 문제설명 * 해결방법 자기 자신의 열 이외의 나머지 열의 최대값을 누적! * 작성코드... 코테준비코테준비 [프로그래머스] Q.12945_C++ (1) 문제 (2) 풀이 처음에 별 생각없이 재귀함수로 작성해서 제출했는데 시간 초과로 나왔다. 구글링 해보니까 재귀함수는 O(n^2)이 걸려서 오래걸리기 때문에 더 효율적인 방법을 찾아야 했다. 동적할당, 이런 알고리즘도 있었는데, 내가 아직 공부를 안해서 자꾸 안써먹는다... 언제 시작할거야 언제!!! 반복문은 O(n)이 걸리길래, 우선 반복문으로 다시 시도해봤는데 또 틀렸다ㅎ 생각해보니... 모듈러 연산프로그래머스코테준비모듈러 연산 78. Best Time to Buy and Sell Stock II 📌 문제 💡 그리디 알고리즘(탐욕 알고리즘) 탐욕 알고리즘은 최적해를 구하는 데에 사용되는 근사적인 방법으로, 여러 경우 중 하나를 결정해야 할 때마다 그 순간에 최적이라고 생각되는 것을 선택해 나가는 방식으로 진행하여 최종적인 해답에 도달한다. 📌 날짜 📌 시도 횟수 💡 Code 💡 문제 해결 방법 💡 새롭게 알게 된 점 ❌ (한번에 맞추지 못한 경우) 오답의 원인... 코테준비코테준비 01. Valid Palindrome 📌 문제 📌 날짜 📌 시도 횟수 💡 Code 💡 문제 해결 방법 💡 새롭게 알게 된 점 ❌ (한번에 맞추지 못한 경우) 오답의 원인 📌 하나. 데크(Deque) 자료형 이용하기 💡 새롭게 알게 된 점 📌 둘. 슬라이싱 사용하기 💡 새롭게 알게 된 점... 코테준비코테준비 08. Trapping Rain Water 📌 문제 📌 날짜 📌 시도 횟수 📌 실패 코드 문제 이해를 제대로 하지 못해서 일부 test case에서만 통과함을 확인할 수 있다. ❌ (한번에 맞추지 못한 경우) 오답의 원인 📌 하나. 투 포인터 이용하기 💡 새롭게 알게 된 점... 코테준비FailedFailed [백준 1012번] 유기농 배추 📌 문제 📌 날짜 📌 시도 횟수 💡 Code 💡 문제 해결 방법 💡 새롭게 알게 된 점 🙄 파이썬에서 최대 재귀 수준 파이썬에는 재귀함수를 이용하여 반복할 수 있는 횟수가 3000쯤?으로 한정되어 있다고 한다. 재귀 제한을 필요한 재귀보다 큰 수로 설정하여 재귀 제한을 해결할 수 있다. 앞으로는 DFS에서 재귀를 사용할 때 아래 코드를 상단에 꼭 삽입하자😎 ❌ (한번에 맞추지 못한 경우) 오... 코테준비코테준비 [백준 4195번] 친구 네트워크 hash union-find union(x, y) : 합하기 - x가 속한 집합과 y가 속한 집합을 합친다. 즉, x와 y가 속한 두 집합을 합치는 연산 find(x) : 찾기 - x가 속한 집합의 대표값(루트 노드 값)을 반환한다. 즉, x가 어떤 집합에 속해 있는지 찾는 연산 parent는 각 학생들의 최상위 부모를 담은 dict이다. 즉 parent dict의 key는 각 학생들의 이름... 코테준비코테준비 10. Array Partition I 📌 문제 📌 날짜 📌 시도 횟수 💡 Code 💡 문제 해결 방법 💡 새롭게 알게 된 점 ❌ (한번에 맞추지 못한 경우) 오답의 원인 📌 하나. (내 코드랑 비슷) 오름차순 풀이 💡 새롭게 알게 된 점 📌 둘. 파이썬다운 방법! 💡 새롭게 알게 된 점... 코테준비코테준비 07. Two Sum 📌 문제 📌 날짜 📌 시도 횟수 💡 Code 💡 문제 해결 방법 💡 새롭게 알게 된 점 ❌ (한번에 맞추지 못한 경우) 오답의 원인 📌 하나. in을 이용한 탐색 💡 새롭게 알게 된 점 📌 둘. dict와 in 사용하기 💡 새롭게 알게 된 점 파이썬에서 in의 시간복잡도 list, tuple : O(n) O(n) set, dictionary : O(1) O(1) 딕셔너리는 해시테이블로 구현되... 코테준비코테준비 [ALGOSPOT] PICNIC (소풍) 📌 문제 📌 날짜 📌 시도 횟수 💡 Code ❌ (한번에 맞추지 못한 경우) 오답의 원인 💡 문제 해결 방법(위의 오답의 원인들을 각각 어떻게 해결할까?) 💡 새롭게 알게 된 점... 코테준비코테준비 [백준 2609번] 최대공약수와 최소공배수 최대 공약수와 최소 공배수 구하기 2개의 자연수를 받아 최대공약수를 받기 위해 2부터 두 자연수 중 작은 자연수까지 모두 나누어보면서 가장 큰 공약수를 구할 수 있다. 위와 같은 방법으로 문제를 풀면 시간복잡도는 O(N)이 된다. 유클리스 호제법 하지만 유클리드 호제법이란 알고리즘을 사용하면 시간복잡도를 O(logN)으로 줄일 수 있다. 유클리드 호제법이란? 2개의 자연수의 최대공약수를 구하... 코테준비코테준비
백준 #2493 towers 리스트 요소들을 뒤→앞 순서로 스택에 하나씩 추가 스택에 남아있음 = 수신을 받지 못 함 아니면 그냥 요소를 추가하고 다음 인덱스로 넘어간다. 스택이 비어 더이상 pop할 요소가 없거나, 추가하는 요소 < 스택 top 이 될 때까지 계속 pop(). 모든 pop이 끝나면 요소를 추가하고 다음 인덱스로 넘어간다. towers 리스트를 순회하면서 {<탑 번호>:0} 딕셔너리를 생성했... 백준코테준비bojboj [프로그래머스] DFS/BFS - 타겟 넘버 📌 문제 📌 날짜 📌 시도 횟수 💡 Code 💡 문제 해결 방법 💡 새롭게 알게 된 점 ❌ (한번에 맞추지 못한 경우) 오답의 원인 위의 코드를 좀 더 깔끔하게😄... 코테준비코테준비 [JS][프로그래머스 Lv2]게임 맵 최단거리 프로그래머스 Lv2 게임 맵 최단거리 * 문제설명 캐릭터가 상대 팀 진영에 도착하기 위해서 지나가야 하는 칸의 최솟값 return. 단 상태 팀 진영에 도착할 수 없을 때는 -1 return. * 해결방법 최단거리는 너비우선탐색(bfs)가 적절 (stack 보다는 queue 사용) 현재 위치에서 상하좌우 이동 가능 여부 판단 상하좌우가 벽(0)이거나, 행렬의 범위를 벗어났다면 이동불가. 이동... 코테준비코테준비 [JS][프로그래머스 Lv2]땅따먹기 프로그래머스 Lv2 땅따먹기 * 문제설명 * 해결방법 자기 자신의 열 이외의 나머지 열의 최대값을 누적! * 작성코드... 코테준비코테준비 [프로그래머스] Q.12945_C++ (1) 문제 (2) 풀이 처음에 별 생각없이 재귀함수로 작성해서 제출했는데 시간 초과로 나왔다. 구글링 해보니까 재귀함수는 O(n^2)이 걸려서 오래걸리기 때문에 더 효율적인 방법을 찾아야 했다. 동적할당, 이런 알고리즘도 있었는데, 내가 아직 공부를 안해서 자꾸 안써먹는다... 언제 시작할거야 언제!!! 반복문은 O(n)이 걸리길래, 우선 반복문으로 다시 시도해봤는데 또 틀렸다ㅎ 생각해보니... 모듈러 연산프로그래머스코테준비모듈러 연산 78. Best Time to Buy and Sell Stock II 📌 문제 💡 그리디 알고리즘(탐욕 알고리즘) 탐욕 알고리즘은 최적해를 구하는 데에 사용되는 근사적인 방법으로, 여러 경우 중 하나를 결정해야 할 때마다 그 순간에 최적이라고 생각되는 것을 선택해 나가는 방식으로 진행하여 최종적인 해답에 도달한다. 📌 날짜 📌 시도 횟수 💡 Code 💡 문제 해결 방법 💡 새롭게 알게 된 점 ❌ (한번에 맞추지 못한 경우) 오답의 원인... 코테준비코테준비 01. Valid Palindrome 📌 문제 📌 날짜 📌 시도 횟수 💡 Code 💡 문제 해결 방법 💡 새롭게 알게 된 점 ❌ (한번에 맞추지 못한 경우) 오답의 원인 📌 하나. 데크(Deque) 자료형 이용하기 💡 새롭게 알게 된 점 📌 둘. 슬라이싱 사용하기 💡 새롭게 알게 된 점... 코테준비코테준비 08. Trapping Rain Water 📌 문제 📌 날짜 📌 시도 횟수 📌 실패 코드 문제 이해를 제대로 하지 못해서 일부 test case에서만 통과함을 확인할 수 있다. ❌ (한번에 맞추지 못한 경우) 오답의 원인 📌 하나. 투 포인터 이용하기 💡 새롭게 알게 된 점... 코테준비FailedFailed [백준 1012번] 유기농 배추 📌 문제 📌 날짜 📌 시도 횟수 💡 Code 💡 문제 해결 방법 💡 새롭게 알게 된 점 🙄 파이썬에서 최대 재귀 수준 파이썬에는 재귀함수를 이용하여 반복할 수 있는 횟수가 3000쯤?으로 한정되어 있다고 한다. 재귀 제한을 필요한 재귀보다 큰 수로 설정하여 재귀 제한을 해결할 수 있다. 앞으로는 DFS에서 재귀를 사용할 때 아래 코드를 상단에 꼭 삽입하자😎 ❌ (한번에 맞추지 못한 경우) 오... 코테준비코테준비 [백준 4195번] 친구 네트워크 hash union-find union(x, y) : 합하기 - x가 속한 집합과 y가 속한 집합을 합친다. 즉, x와 y가 속한 두 집합을 합치는 연산 find(x) : 찾기 - x가 속한 집합의 대표값(루트 노드 값)을 반환한다. 즉, x가 어떤 집합에 속해 있는지 찾는 연산 parent는 각 학생들의 최상위 부모를 담은 dict이다. 즉 parent dict의 key는 각 학생들의 이름... 코테준비코테준비 10. Array Partition I 📌 문제 📌 날짜 📌 시도 횟수 💡 Code 💡 문제 해결 방법 💡 새롭게 알게 된 점 ❌ (한번에 맞추지 못한 경우) 오답의 원인 📌 하나. (내 코드랑 비슷) 오름차순 풀이 💡 새롭게 알게 된 점 📌 둘. 파이썬다운 방법! 💡 새롭게 알게 된 점... 코테준비코테준비 07. Two Sum 📌 문제 📌 날짜 📌 시도 횟수 💡 Code 💡 문제 해결 방법 💡 새롭게 알게 된 점 ❌ (한번에 맞추지 못한 경우) 오답의 원인 📌 하나. in을 이용한 탐색 💡 새롭게 알게 된 점 📌 둘. dict와 in 사용하기 💡 새롭게 알게 된 점 파이썬에서 in의 시간복잡도 list, tuple : O(n) O(n) set, dictionary : O(1) O(1) 딕셔너리는 해시테이블로 구현되... 코테준비코테준비 [ALGOSPOT] PICNIC (소풍) 📌 문제 📌 날짜 📌 시도 횟수 💡 Code ❌ (한번에 맞추지 못한 경우) 오답의 원인 💡 문제 해결 방법(위의 오답의 원인들을 각각 어떻게 해결할까?) 💡 새롭게 알게 된 점... 코테준비코테준비 [백준 2609번] 최대공약수와 최소공배수 최대 공약수와 최소 공배수 구하기 2개의 자연수를 받아 최대공약수를 받기 위해 2부터 두 자연수 중 작은 자연수까지 모두 나누어보면서 가장 큰 공약수를 구할 수 있다. 위와 같은 방법으로 문제를 풀면 시간복잡도는 O(N)이 된다. 유클리스 호제법 하지만 유클리드 호제법이란 알고리즘을 사용하면 시간복잡도를 O(logN)으로 줄일 수 있다. 유클리드 호제법이란? 2개의 자연수의 최대공약수를 구하... 코테준비코테준비