분류 전체보기
백준 2232(지뢰) - 구현
백준 2232(지뢰) - 구현
2022.05.252232번: 지뢰 일직선상에 N개의 지뢰가 같은 간격으로 매설되어 있다. 각각의 지뢰는 충격 강도 Pi가 있어서, Pi를 초과하는 힘을 가하면 Pi만큼의 힘을 발휘하며 터지게 된다. 어떤 지뢰가 터지게 되면, 그 지 www.acmicpc.net 풀이 방법 ⓘ 하나씩 입력 받아서 graph 리스트 안에 입력 받기 ② for문을 돌려서 리스트[graph[i]]의 값이 현재 리스트 바로 앞의 값(graph[i-1])보다 크거나 같고 현재 리스트 바로 뒤의 값[graph[i+1])보다 작거나 같으면 출력된다고 보면 된다. ( graph[i] >= graph[i-1] && graph[i]>=graph[i+1] ) ③ 예외의 경우 1) 리스트의 개수가 1인 경우 앞과 뒤가 없으므로 자기 자신이 무조건 출력 된다. ..
백준 18352(특정 거리의 도시 찾기) - Python(파이썬) -BFS
백준 18352(특정 거리의 도시 찾기) - Python(파이썬) -BFS
2022.05.2518352번: 특정 거리의 도시 찾기 첫째 줄에 도시의 개수 N, 도로의 개수 M, 거리 정보 K, 출발 도시의 번호 X가 주어진다. (2 ≤ N ≤ 300,000, 1 ≤ M ≤ 1,000,000, 1 ≤ K ≤ 300,000, 1 ≤ X ≤ N) 둘째 줄부터 M개의 줄에 걸쳐서 두 개 www.acmicpc.net 풀이 방법 모든 도로의 거리가 1이므로 -> bfs 가능하다. ① graph(노드와 간선을 나타내는 그래프) (연결 여부 확인용)으로 사용한다 -> a와 b가 연결되었다고 가정하면 graph[a] = [b] 이렇게 있도록. ② 거리 테이블을 표현하는 테이블 하나 선언하기 (distance) , 이때, 초기값들은 모두 -1이도록 선언 ③ 시작노드부터 시작하여서 연결된 노드들의 값이 -1인경우(..
백준 16948(데스나이트) - Python(파이썬),자바(Java)
백준 16948(데스나이트) - Python(파이썬),자바(Java)
2022.05.2416948번: 데스 나이트 게임을 좋아하는 큐브러버는 체스에서 사용할 새로운 말 "데스 나이트"를 만들었다. 데스 나이트가 있는 곳이 (r, c)라면, (r-2, c-1), (r-2, c+1), (r, c-2), (r, c+2), (r+2, c-1), (r+2, c+1)로 이동할 수 있다. 크 www.acmicpc.net BFS - duque 메서드 - Python(파이썬),Java(자바) DFS 설명 스택, 큐, 재귀함수, DFS 탐색(Search) : 많은 양의 데이터 중에서 원하는 데이터를 찾는 과정 대표적인 탐색 알고리즘으로 DFS, BFS , 이 두 알고리즘을 이해하기 위해서 스택, 큐, 재귀 함 coooco.tistory.com 풀이 방법 ① 이차원 배열로 nxn graph 생성 ( -> 이동..
[oracle-sqldeveloper] 비밀번호 만료- Mac,맥북
[oracle-sqldeveloper] 비밀번호 만료- Mac,맥북
2022.05.24오랜만에 프로젝트 정리하러 들어갈려고 오라클을 켰는데,, 비밀번호 만료가 되었다며 ORA-28001: the password has expired 오류메세지가 뜬다.. 첨에 이것저것 시도해볼라고 했지만 맥북에서는 도커를 사용하여 오라클을 사용하기 때문에 윈도우 방법을 사용하니깐 아무것도 되지 않았다.. 그러던 중 이 분 블로그 보고 따라하니깐 제대로 되었다고 한다... [oracle] 28001 비밀번호 만료 맥으로 오라클을 사용하기 위해 도커를 이용했다 어째저째 설치하고 사용은 하고 있었지만 도커나 오라클에 대해 완벽하게 숙지하고 있는 상태는 아니었다 왠만하면 아무것도 건드리지 않고 eugene-kim.tistory.com 1.docker ps 첨에 docker ps를 통해서 컨테이너 이름을 안다. 나..
[이코테] CHAPTER 09 최단 경로 알고리즘 - 다익스트라 최단 경로 알고리즘
[이코테] CHAPTER 09 최단 경로 알고리즘 - 다익스트라 최단 경로 알고리즘
2022.05.23최단 경로 알고리즘(Shortest Path) : 가장 짧은 경로를 찾는 알고리즘 1) 최단 경로 문제- 지점( 노드 ), 지점 간 연결된 도로( 간선 ) - 한 지점에서 다른 한 지점까지의 최단 경로를 구해야 하는 경우 - 한 지점에서 다른 모든 지점까지의 최단 경로를 구해야 하는 경우 - 모든 지점에서 다른 모든 지점까지의 최단 경로를 모두 구해야 하는 경우 2) 최단 경로 알고리즘 종류 - 다익스트라 최단 경로 알고리즘 , 플로이드 워셜 1. 다익스트라(Dijkstra) 최단 경로 알고리즘 : 특정한 한 노드에서 출발하여 다른 노드로 가는 각각의 최단 경로를 구해주는 알고리즘 - 음의 간선(0보다 작은 값을 가지는 간선)이 없을 때 정상적으로 동작 -> GPS 소프트웨어(길찾기)의 기본 알고리즘 채..
백준 4936(섬의 개수) - BFS 풀기
백준 4936(섬의 개수) - BFS 풀기
2022.05.21BFS - duque 메서드 - Python(파이썬),Java(자바) DFS 설명 스택, 큐, 재귀함수, DFS 탐색(Search) : 많은 양의 데이터 중에서 원하는 데이터를 찾는 과정 대표적인 탐색 알고리즘으로 DFS, BFS , 이 두 알고리즘을 이해하기 위해서 스택, 큐, 재귀 함 coooco.tistory.com import sys from collections import deque dw=[-1,-1,-1,0,0,1,1,1] dh=[-1,0,1,-1,1,-1,0,1] def bfs(graph,h,w): queue=deque() queue.append((h,w)) while queue: h,w = queue.popleft() for i in range(8): nw = w+dw[i] nh = h+..
백준 14716(현수막) - 파이썬(Python),자바(Java) - DFS(재귀함수),sys.setrecursionlimit(10**6),BFS
백준 14716(현수막) - 파이썬(Python),자바(Java) - DFS(재귀함수),sys.setrecursionlimit(10**6),BFS
2022.05.2014716번: 현수막 혁진이의 생각대로 프로그램을 구현했을 때, 현수막에서 글자의 개수가 몇 개인지 출력하여라. www.acmicpc.net * 재귀함수 문제 시에는 sys.setrecursionlimit(10**6)을 상단에 적어준다. 파이썬의 기본 재귀 깊이 제한이 1000으로 작은 편이기 때문에 런타임 에러 발생한다. graph=[] for i in range(m): graph.append(list(map(int,sys.stdin.readline().split()))) graph=[list(map(int,sys.stdin.readline().split())) for _ in range(m)] 둘은 동일하다. 1. DFS로 푼 경우 스택, 큐, 재귀함수, DFS 탐색(Search) : 많은 양의 데이..
백준 1260(DFS와 BFS) - DFS & BFS
백준 1260(DFS와 BFS) - DFS & BFS
2022.05.18DFS 설명 스택, 큐, 재귀함수, DFS 탐색(Search) : 많은 양의 데이터 중에서 원하는 데이터를 찾는 과정 대표적인 탐색 알고리즘으로 DFS, BFS , 이 두 알고리즘을 이해하기 위해서 스택, 큐, 재귀 함수를 알아야한다. 참고자료. https: coooco.tistory.com BFS 설명 BFS - duque 메서드 - Python(파이썬),Java(자바) DFS 설명 스택, 큐, 재귀함수, DFS 탐색(Search) : 많은 양의 데이터 중에서 원하는 데이터를 찾는 과정 대표적인 탐색 알고리즘으로 DFS, BFS , 이 두 알고리즘을 이해하기 위해서 스택, 큐, 재귀 함 coooco.tistory.com 내가 푼 풀이법 입력한 값들을 연결된 노드를 저정하도록 그래프를 만든다. graph..
[이코테] CHAPTER 05 DFS/BFS - BFS(deque 메서드) - Python(파이썬),Java(자바)
[이코테] CHAPTER 05 DFS/BFS - BFS(deque 메서드) - Python(파이썬),Java(자바)
2022.05.18DFS 설명 스택, 큐, 재귀함수, DFS 탐색(Search) : 많은 양의 데이터 중에서 원하는 데이터를 찾는 과정 대표적인 탐색 알고리즘으로 DFS, BFS , 이 두 알고리즘을 이해하기 위해서 스택, 큐, 재귀 함수를 알아야한다. 참고자료. https: coooco.tistory.com https://www.youtube.com/watch?v=7C9RgOcvkvo BFS : 너비 우선 탐색 가까운 노드부터 탐색하는 알고리즘 DFS: 최대한 멀리 있는 노드를 우선으로 탐색하는 방식 - 큐 자료구조 사용 하는 것이 정석 1. 탐색 시작 노드를 큐에 삽입하고 방문 처리를 한다. 2. 큐에서 노드를 꺼내 해당 노드 중에서 인접 노드 중에서 방문하지 않은 노드를 모두 큐에 삽입하고 방문 처리를 한다. ( B..
[이코테]CHAPTER 05 DFS/BFS - 스택, 큐, 재귀함수, DFS
[이코테]CHAPTER 05 DFS/BFS - 스택, 큐, 재귀함수, DFS
2022.05.17탐색(Search) : 많은 양의 데이터 중에서 원하는 데이터를 찾는 과정 대표적인 탐색 알고리즘으로 DFS, BFS , 이 두 알고리즘을 이해하기 위해서 스택, 큐, 재귀 함수를 알아야한다. 참고자료. https://gmlwjd9405.github.io/2018/08/03/data-structure-stack.html 스택(Stack)= 박스 쌓기 : 한 쪽 끝에서만 자료를 넣고 뺄 수 있는 LIFO(Last In First Out) 또는 LILO(Last In Last Out) 구조 스택 메서드( java 라이브러리) * push(E item) : 해당 item을 Stack의 top에 삽입 * pop( ): Stack의 top에 있는 item을 삭제하고 해당 Item을 반환 * peek( ): Sta..
백준 2864(5와 6의 차이) - Python(파이썬)
백준 2864(5와 6의 차이) - Python(파이썬)
2022.05.176이라고 표시된 값이 모두 5로 변경될 경우의 합이 가장 최솟값일 거고, 5라고 표시된 값이 모두 6으로 변경될 경우의 합이 가장 최댓값이다. 따라서 replace를 통해 변경해서 더해서 표현한다. import sys array = sys.stdin.readline().split() print(int(array[0].replace('6','5'))+int(array[1].replace('6','5')),int(array[0].replace('5','6'))+int(array[1].replace('5','6')))
백준 2752(세수정렬)- Python(파이썬)
백준 2752(세수정렬)- Python(파이썬)
2022.05.171) sort 로 배열 정리 import sys array = list(map(int,sys.stdin.readline().split())) array.sort() print(array[0],array[1],array[2]) 2) 삽입 정렬로 정리 삽입 정렬로 풀면 숫자가 세개밖에 없기 때문에 더 일찍 sort할수도 있다고 생각하였기 때문에 삽입 정렬로도 한번 풀어봤더니 더 짧게 풀리긴 했다. 백준 -2750 (수 정렬하기) - 선택정렬, 삽입정렬, 계수정렬 2750번: 수 정렬하기 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수 주어진다. 이 수는 절댓값이 1,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. www.acmicpc.n coooco.t..
백준 1931(회의실 배정) - Python(파이썬)
백준 1931(회의실 배정) - Python(파이썬)
2022.05.17끝나는 순서대로 정렬 import sys N=int(sys.stdin.readline()) array=[] for i in range(N): array.append(list(map(int,sys.stdin.readline().split()))) array.sort(key=lambda x:(x[1],x[0])) count =end_time=0 for i in range(N): if end_time
백준 10989( 수 정렬하기3 ) - 파이썬(Python)
백준 10989( 수 정렬하기3 ) - 파이썬(Python)
2022.05.16계수 정렬로 풀기 정렬 - 계수 정렬 계수 정렬 (Count Sort) : 특정한 조건이 부합할 때만 사용할 수 있지만, 매우 빠른 알고리즘( 일반적으로 가장 큰 데이터와 가장 작은 데이터의 차이가 1,000,000을 넘지 않을 때 효과적으로 사용할 수 coooco.tistory.com import sys N = int(sys.stdin.readline()) array = [0]*10001 for i in range(N): array[int(sys.stdin.readline())]+=1 for i in range(1,len(array),1): # if를 하지 않을 경우 시간 초과가 난다. if array[i]!=0: for j in range(array[i]): print(i) if를 선언하여 array..
백준 10814(나이순 정렬) - 파이썬(Python), 정렬(계수 정렬)
백준 10814(나이순 정렬) - 파이썬(Python), 정렬(계수 정렬)
2022.05.16import sys N = int(sys.stdin.readline()) user=[] for i in range(N): user.append(list(sys.stdin.readline().split())) user.sort(key=lambda x:int(x[0])) for i in range(N): print(user[i][0],user[i][1])
[이코테] CHAPTER 06 정렬 - 계수 정렬
[이코테] CHAPTER 06 정렬 - 계수 정렬
2022.05.16계수 정렬 (Count Sort) : 특정한 조건이 부합할 때만 사용할 수 있지만, 매우 빠른 알고리즘( 일반적으로 가장 큰 데이터와 가장 작은 데이터의 차이가 1,000,000을 넘지 않을 때 효과적으로 사용할 수 있다.) 별도의 리스트를 선언하고 그 안에 정보를 담는다. 데이터를 하나씩 확인하며 데이터의 값과 동일한 인덱스의 데이터를 1씩 증가시키면 계수 정렬이 완성된다. ex) 7 5 9 0 3 1 6 2 9 1 4 8 0 5 2 0 1 2 3 4 5 6 7 8 9 0 0 0 0 0 0 0 1 0 0 7 5 9 0 3 1 6 2 9 1 4 8 0 5 2 0 1 2 3 4 5 6 7 8 9 0 0 0 0 0 1 0 1 0 0 7 5 9 0 3 1 6 2 9 1 4 8 0 5 2 0 1 2 3 4 5 ..