solution(5,2,4,1,3,5)터졌다...for문이 도는 중에 pop연산으로 인해 인덱스에 변화가 생겨서 문제가생겼다.주어진 테스트케이스는 2개는 모두 통과하였지만, 터지는값들이 많다.도난배열과 여분배열의 중복값을 제거하는부분에서 for문 내 pop연산때문에 문
https://programmers.co.kr/learn/courses/30/lessons/68644보자마자 바로 코드 작성할수있을정도로 아주 쉬운문제이다근데 뭘놓쳤지?...중복제거를 위해 set하는 과정에서 정렬이 풀리면서 오름차순으로 정렬이 안된것!set
https://programmers.co.kr/learn/courses/30/lessons/42586dict 에서 value값만 가져와 list로 만드는것만 테스트해보고 바로 슈슈슉 작성했는데하나 뭐지?..보통 이런경우 굉장히 극단적인 케이스 하나가 안되는것일
https://programmers.co.kr/learn/courses/30/lessons/49993나는 skill 로 skill_trees를 돌리며 비교했는데다른분은 skill_trees를 가지고 skill 을 돌리며 비교했다길이가 20이하인 배열이라고 주어
https://programmers.co.kr/learn/courses/30/lessons/42576?language=python3리스트로 돌리면서 비교하면 갯수가 10만이기때문에 시간복잡도가 오바될것같아hash로 구현했다. 완주자 리스트를 먼저 만들어둔후,
https://programmers.co.kr/learn/courses/30/lessons/43162?language=python3bfs 나 dfs로 구현하면 될것같아 문제읽자마자 그냥 쭉 써서 돌렸더니 바로됐다오랜만이다 이렇게 한번에 빠르게된것!!dfs 구현
https://programmers.co.kr/learn/courses/30/lessons/42885처음에는 태워보낸 사람들을 pop연산으로 배열에서 빼주면서 다 사라질때까지 돌아가게끔 하려고했는데 중간에 pop을 하다보니 인덱스가 바뀌어서 어려움을 겪었다.
https://programmers.co.kr/learn/courses/30/lessons/42577사실 이문제는 못풀었다. 도저히 생각이안나서 그냥 찾아봤는데내가 sort를 하면 포함관계인 전화번호는 바로 앞뒤로 배치된다는것을 생각 못했다.나는 길이가 짧은순
https://www.acmicpc.net/problem/16675요런식으로 받을수 있다는것 처음 써본것같다.('ABC'.index('A'))하면 0 나온다.요런식으로 문자열 두개 튜플로 넣어서 그안에 특정값이 들어있는지 검색 가능하다.처음에는 tk1, tk2
https://www.acmicpc.net/problem/17413reverse는 list에만 적용가능하다s = 'apple'print(''.join(reversed(s))) \`\`\`끝!
a.keys(), a.values() , a.items()
BFS
dfs
DFS
삼성기출 구현
삼성기출, 구현, 노가다?
삼성기출 b = copy.deepcopy(a), itertools.permutation(arr,n)
defaultdict(int), 파이썬 시간초과, n^4 -> n^2
삼성기출, if not visit[i][j] : dfs(i,j)
골드4, bfs 벽 1개 부수기가능
문자열 유사성비교
deque.rotate(1) : 오른쪽으로 1만큼 sift
p,q = divmod(a,b) p : 몫 q : 나머지
set
문제 boj 17219 비밀번호찾기 앞에꺼보다 더더 easy한 문제이다 풀이 코드 길이만 봐도 알수 있듯이 2분컷 가능한 문제이다 기분 좋아지고 싶을때 풀면 좋을것같다. 결과 위에껀 input 빠르게하는 코드 추가해서 다시돌려본거다 속도차이가 상당히 많이난다. 백준 풀때는 input 갯수 많을때는 써줘야겠다 속도차이가 상당히 많이난다. 끝!!
분할정복, pow 함수 원리
' '.join(arr) -> ' '.join(map(str,arr)) or ' '.join(str(k) for k in arr)
두 포인터 sum(arr[0:4]) = arr[0] + 1 + 2 + 3
투포인터, abs
deque popleft를 통한 reverse 효과
from itertools import combinations //// chic in combinations(chicken,m)
bound upper bound? 안쓰고 그냥 투포인터로 한거
set 합집합 : |, 교집합 : & , O(len(arr1) + len(arr2))
bfs
union find
union find , f[a] x find(f,a) (o)
카카오스타일
set.add(), remove 없으면 에러 discard 없어도 OK
arr.insert(idx,value) 배열의 특정 인덱스에 원소추가
from itertools import product
for i in combinations(range(1,n+1),m):
product(arr, repeat = m)
N과M(4)from itertools import combinationscombinations_with_replacement(arr,m)중복조합이다
풀이1 풀이2
combination
boj 15655 N과M (7)
boj 15655 N과M (8)
boj 15655 N과M (9)
boj 15655 N과M (10)
튜플 1개짜리는 (1,) , 포함여부 체크 조심 (1,2) in (1,2,3) X
https://www.acmicpc.net/problem/2212집중국의 개수 k개만큼 덩어리를 나눌 수 있으므로만약 집중국이 없었다면 모든 선을 이어야 하겠지만집중국이 생기므로 인해 (k-1)개 만큼은 선을 없애도 된다. ex) k=2일경우 크게 두 덩어리로
카카오 기출
재귀
Counter('hello world')
https://programmers.co.kr/learn/courses/30/lessons/600575번 테스트케이스에서 계속 런타임 에러가 나서 그부분 찾는게 힘들었다.1글자 짜리가 들어오면 arr에 append가 되지 않아 min함수에서 빈 배열이 호출되어
문제 https://programmers.co.kr/learn/courses/30/lessons/17686 풀이 방법 dict를 통해 기본으로 주어진 문자와 순서를 기억해두고 변환 조건에 맞춰 변환한 순서를 알아낸 후 해당 순서대로 정렬하는 아이디어를 생각했다.
https://www.acmicpc.net/problem/15685처음에 문제읽고 어떻게 접근해야 하나 막막했던 문제이다규칙만 찾아내고나면 그 후는 단순 구현이라 어렵지는 않다드래곤 커브를 직접 그려보면서 문제에 주어진 direction 대로 0,1,2,3 숫
삼성, bfs
삼성
https://www.acmicpc.net/problem/5567
union find, 크루스칼
union find
itertools product
https://leetcode.com/problems/reorder-data-in-log-files/
https://leetcode.com/problems/most-common-word/
https://leetcode.com/problems/group-anagrams/
https://leetcode.com/problems/longest-palindromic-substring/
https://leetcode.com/problems/two-sum/투포인터를 활용해서 풀어봤다. 인덱스를 반환해야하기 때문에, 튜플로 인덱스를 같이 묶어 정렬해주었다.파이썬에서 정렬 내장함수가 팀소트로 O(n)이라고 본것같은데투포인터로 탐색하는데도 O(n)정
https://leetcode.com/problems/3sum/3개의 합을 for문으로 돌리면 O(n^3)이 되어 문제 인풋 범위가 3천까지이기에 시간초과가 될것이므로O(n^2) 으로 줄일 수 있는 방법을 고민해봤다.처음 생각한 방법은 2번만 돌려서 n^2의
https://leetcode.com/problems/array-partition-i/submissions/먼저 모든 경우를 다 비교해 볼 경우, (2n C 2) / 2 가 되어 O(n^2) 이 나온다. 인풋이 10^4 이기 때문에 시간초과가 날 것 같아 더
못푼문제
틀림
https://leetcode.com/problems/palindrome-linked-list/링크드 리스트를 배열형식으로 변환 후 비교해주었다
나중에 풀거 저장용
or 단축평가
면접스타일, 어려움
DFS BFS
문제 https://programmers.co.kr/learn/courses/30/lessons/81301 풀이 평소에 switch문보다 if else 문을 선호해서 잘 안쓰다보니 몰랐는데 파이썬에 switch case가 없다는걸 처음알았다. if else로 쭉 비교하는것보다 dict로 만들면 O(1)로 처리가 가능하기에 더 효율적일것 같다는 생각이 ...
dfs
https://leetcode.com/problems/permutations/순열을 구현하는 문제이다백준때도 풀어봤던 문제인데재귀로 풀이itertools 모듈 사용2가지가 가능하다.재귀 연습이나 할겸 1번 방법으로 풀어봤다.재귀
조합
https://www.acmicpc.net/problem/10026그냥 평범한 dfs
문제 https://www.acmicpc.net/problem/21609 내풀이 주의점 하면서 틀려가지고 시간썼던부분들만 정리해보았다. 한번 돌릴때마다 visited 초기화 해줘야 하는거 잊지말자 중력에 블록 내릴때 빈블록이면 패스하게끔 하는거, 종료조건이 전부
https://www.acmicpc.net/problem/20055가장 오래된 로봇부터 = N칸 N-1, N-2, ... 1 순서대로이다.N+1칸 ~ 2N칸 까지는 로봇이 존재하지 않는다. (N칸에서 빠지므로 새로 충원 전까지는 비어있음)전체 컨베이어벨트 ro
https://www.acmicpc.net/problem/23290
https://www.acmicpc.net/problem/23288주사위 좌표를 헷갈려서 그냥 보이는대로 2차원 배열로 만들었는데사실 숫자 6개만 1차원배열로 만드는게 더 효율성 높은 풀이일것이다.메모리나 시간복잡도 측면에서 크게 상관이 없기때문에 편의를위해
https://www.acmicpc.net/problem/17144
https://www.acmicpc.net/problem/20061점수를 얻는부분에서 조건을 만족하면 칸을 비우는 방식으로 for문으로 돌리게끔 짰는데한턴에 두줄이 동시에 사라지는 상황일경우 맵이 변화한 상태로 다음턴에 들어가므로 index가 꼬이는상황이 나오
https://www.acmicpc.net/problem/19237
다익스트라
https://leetcode.com/problems/valid-mountain-array/