목록분류 전체보기 (279)
내 잡다한 노트
# 문제 https://www.acmicpc.net/problem/15683 # 소스코드 from collections import deque n, m = map(int, input().split()) cctv = [] wall = [] arr = [] ans = n * m dx = [0, 0, 1, -1] dy = [1, -1, 0, 0] left = [-1, 0] right = [1, 0] up = [0, -1] down = [0, 1] two = [[left, right], [up, down]] three = [[up, right], [right, down], [down, left], [left, up]] four = [[left, up, right], [up, right, down], [right..
문제) https://www.acmicpc.net/problem/15897 15897번: 잘못 구현한 에라토스테네스의 체 성원이는 오늘 이산수학 수업 시간에 에라토스테네스의 체에 대해 배웠다. 에라토스테네스의 체는 고대 그리스 수학자 에라토스테네스가 발견한 소수를 찾는 방법이다. 성원이는 이 방법에 너 www.acmicpc.net 소스코드) n = int(input()) arr = [] ans = n j = 0 i = 2 while n > i: j = (n - 1) // ((n - 1) // i) num = 1 + (n - 1) // i ans += (j - i + 1) * num #print(i, j, num, ans) i = j+1 if n != 1: ans += 1 print(ans) 왤캐 어렵지...
# 문제 https://www.acmicpc.net/problem/1612 1612번: 가지고 노는 1 동물원에서 막 탈출한 원숭이 한 마리가 세상구경을 하고 있다. 이 원숭이는 수를 이리저리 가지고 노는 것을 매우 좋아한다. 그중에서도 1을 가지고 노는 것을 매우매우매우매우매우 좋아한다. www.acmicpc.net # 소스코드 n = int(input()) temp = 1 ans = 1 if n % 2 == 0 or n % 5 == 0: print(-1) exit() while temp % n != 0: temp = (temp % n) * 10 + 1 ans += 1 print(ans) temp = (temp % n) * 10 + 1이 왤캐 와닿지가 않을까...ㅋㅋㅋ 그냥 1, 11, 111, 111..
우선순위 큐를 위해 만들어진 자료구조이다. 먼저, 우선순위 큐에 대해 짧게 알아보면... # 우선순위 큐 우선순위의 개념을 큐에 도입한 자료구조이다. 데이터들이 우선순위를 가지고 있고 우선순위가 높은 데이터가 먼저 나간다. # 우선순위 큐 이용사례 시뮬레이션 시스템 네트워크 트래픽 제어 운영 체제에서의 작업 스케쥴링 수치 해석적인 계산 우선순위 큐는 배열, 연결리스트, 힙으로 구현이 가능하다. 이 중에서 힙으로 구현이 가능하는게 가장 효율적이라고 한다. 힙으로 구현할 시 삽입과 삭제의 시간복잡도는 각각 O(logn)이 된다고 한다. # 힙 heap 완전 이진 트리(Complete tree)의 일종으로 우선순위 큐를 위해 만들어진 자료구조이다. 완전이진트리는 왼쪽부터 아래쪽으로 삽입해 나간다. 또한 리프노..
# 올림, 내림 math 클래스 안의 ceil, floor함수를 사용하자 math.ceil(i)는 올림 math.floor(i)는 내림 근데, 인자로 들어온 i의 값이 정수 타입으로 반환된다고 한다. #반올림 소수점을 n번째 까지만 표현하고 반올림을 하고 싶을 때, round 함수를 사용하면 된다. round(숫자, n) 파이썬의 반올림은 반올림 하려는 수가 올림, 내림했을 때 동일하게 차이가 나는 경우에는 짝수값으로 반올림한다. round(0.5)의 값은 이상하게도 0이다... 0.5는 0에도 0.5 차이나고 1에도 0.5 차이가 나는 상황이다. 이때 똑같이 가깝다면 짝수를 반환하게 설계돼어 0을 반환한다. 부동소수점의 오차때문에 오류가 생길 수 있음... 부동소수점을 이용해 연산을 할때는 우리 예상과..
트라이(Trie) 알고리즘 # 개념 트라이란 문자열을 저장하고 효율적으로 탐색하기 위한 트리 형태의 자료구조이다. 래딕스 트리(radix tree)나 접두사 트리(prefix tree)라고도 한다. retrival(탐색)에서 trie를 따왔다고도 한다. 이 자료구조를 활용해 검색어 자동완성, 사전에서 찾기, 문자열 검사 등을 한다고 한다. # 사용 목적 문자열의 탐색을 할 때, 단순하게 하나씩 비교하면서 탐색을 하는 것보다 시간복잡도 측면에서 훨씬 효율적이다. 단 빠르게 탐색이 가능하다는 장점이 있지만, 각 노드에서 자식들에 대한 포인터들을 배열로 모두 저장하고 있다는 점에서 저장 공간의 크기가 크다는 단점도 있다. 문자열을 검색하는 문제에서 입력되는 문자열이 많은 경우 자주 사용됨. # 시간 복잡도 제..
1-1. GIT 명령어 분류명령어내용 설명 $ git init .git 하위 디렉토리 생성 (폴더를 만든 후, 그 안에서 명령 실행 => 새로운 git저장소 생성) $ git clone 기존 소스 코드 다운로드/복제 $ git clone /로컬/저장소/경로 로컬 저장소 복제 $ git clone 사용자명@호스트:/원격/저장소/경로 원격 서버 저장소 복제 $ git add $ git add * 커밋에 단일 파일의 변경 사항을 포함 (인덱스에 추가된 상태) $ git add -A 커밋에 파일의 변경 사항을 한번에 모두 포함 $ git commit -m "커밋 메시지" 커밋 생성 (실제 변경사항 확정) $ git status 파일 상태 확인 $ git branch 브랜치 목록 $ git branch 새 브랜치..
# 문제 https://www.acmicpc.net/problem/11725 11725번: 트리의 부모 찾기 루트 없는 트리가 주어진다. 이때, 트리의 루트를 1이라고 정했을 때, 각 노드의 부모를 구하는 프로그램을 작성하시오. www.acmicpc.net # 소스코드 import sys from collections import defaultdict n = int(input()) isParent = [1] visited = [False] * (n+1) parent = defaultdict(list) tree = [[] for _ in range(n+1)] for _ in range(n-1): a, b = map(int, sys.stdin.readline().split()) tree[a].append(b..