M 번째 문서를 표시하기 위해 0.1을 더해서 풀었는데 계속 틀렸습니다.알고 보니 4.1-0.1과 4는 다른 것이었습니다.int(4.1-0.1)도 4가 아니고 3이었습니다.그 부분에 round를 써주어 해결했습니다.
range()에 시작 숫자, 종료 숫자를 넣고, 뒤에 step을 넣어줄 수 있는 것을 배웠습니다.'구분 문자'.join(리스트)를 이용해 리스트 내부 요소들을 합쳐보았습니다.
오큰수가 없는 애들의 답은 -1이기 때문에, 처음에 전부 -1을 답으로 한 리스트를 만들어주었습니다.이후 오큰수를 찾지 못한 애들의 인덱스를 스택에 저장하였습니다.값이 아닌 인덱스 값을 저장하는 이유는 -1이었던 정답을 업데이트 해야 할 때 위치가 필요하기 때문입니다.
union find를 배웠습니다.부모 1 2 3 4자식 1 2 3 4여기서 1과 2가 연결되면 2의 부모를 1로 바꿔줌으로써 1과 2의 연결을 표현합니다.부모 1 1 3 4자식 1 2 3 4위와 같이 됩니다. (일반적으로 더 작은 값 쪽으로 합칩니다.)이후 2와 3이
첫 번째 코드(시간 초과)두 번째 코드처음에는 재귀를 이용해 ans를 채우는 방법으로 했는데 시간 초과가 났습니다.약수를 구하는 for 문에서 1부터 int(a\*\*0.5)까지 계속 도는 것이 시간 초과의 원인이었던 것 같습니다.그래서 다른 분들의 답을 참고했습니다.
첫 번째 코드(시간 초과)두 번째 코드(성공)int에서 str로 바꾸는 str()은 O(log n)의 시간 복잡도를 가집니다. (O(log n) = O(d) => n이라는 파라미터의 자릿수(d)에 비례)입력이 최대 1000000자리인데 int형으로 입력받은 뒤 str
첫 번째 코드(시간 초과)두 번째 코드(성공)list를 쓴 코드는 시간 초과가 나왔고, set을 쓴 코드는 성공했습니다.t가 S에 있는지 확인할 때, in을 사용했는데 자료 구조에 따라 시간 복잡도가 다른 것이었습니다.set과 dict는 hash table 구조(key
동빈나님의 youtube 강의를 보고 공부했습니다. (https://www.youtube.com/watch?v=7C9RgOcvkvo&t=2401s)기준이 되는 정점을 index로 갖고 간선으로 연결된 상대 정점을 요소로 갖는 2차원 list를 만들었습니다. (
queue를 이용해 BFS로 풀었습니다.graph를 탐색할 때, 첫 번째 행의 요소를 기준으로 위쪽의 점을 탐색하지 못합니다.마찬가지로, 첫 번째 열의 요소를 기준으로는 왼쪽의 점을 탐색하지 못합니다.이러한 것들에 조건을 붙여주지 않고 1행, 1열, 마지막 행, 마지막
N보다 작은 모든 제곱수를 넣은 리스트 a를 만들었습니다.그리고 리스트 a에서 중복조합으로 i 개를 뽑아서 합을 구한 뒤 N과 같은 값을 갖는지 확인했습니다.예) N = 17, a = 1, 4, 9, 16, i = 2라면(1, 1), (1, 4), (1, 9), (1,