[백준] Python,Java로 풀기📖
백준 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..
백준 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])
백준 1920( 수 찾기 ) - Python(파이썬)
백준 1920( 수 찾기 ) - Python(파이썬)
2022.05.131) 이진탐색으로 하지 않은 코드 시간 초과난 코드: import sys sys.stdin.readline() #필요 없으므로 그냥 명시 A = list(map(int,sys.stdin.readline().split())) sys.stdin.readline() #필요 없으므로 그냥 명시 B = list(map(int,sys.stdin.readline().split())) for i in B: if i in A: print(1) else: print(0) list -> set으로 변경 import sys sys.stdin.readline() #필요 없으므로 그냥 명시 A = set(map(int,sys.stdin.readline().split())) sys.stdin.readline() #필요 없으므로 그..
백준 6198(옥상 정원 꾸미기 ) - Stack , Python
백준 6198(옥상 정원 꾸미기 ) - Stack , Python
2022.05.13dd 자바 풀이의 경우 백준 -6189 (옥상 정원 꾸미기) - Java - 스택 문제 이해 ) 예제 6개의 빌딩 수 입력 [10, 3, 7, 4, 12, 2 ] 10의 경우 3, 7, 4 까지 보는 것이 가능하고 ... blog.naver.com 풀이 0. br.readLined으로 10 읽음. result=0, stack 안에는 10이 들어와 [10] 1. 3 읽음. result=1 (들어온 수 3은 10보다 작으므로 그대로) -> 3을 볼 수 있는 숫자는 10 하나이다 -> 10은 3을 볼 수 있다. 즉, 3의 관점에서 10으로부터 보임을 당한다.그래서 +1이다 stack 안에는 [10,3] 2. 7 읽음. result=1+1 ( 들어온 수 7은 3보다 크므로,3 pop | 7은 10보다 작으므로 ..
백준 15829(Hashing)-Python(파이썬)
백준 15829(Hashing)-Python(파이썬)
2022.05.12* mod M : 모듈러 연산으로 시그마로 계산한 연산을 M으로 나눈 나머지를 의미 = %와 동일( 단, 나머지는 양수 ) ex ) 17 mod 3 17 = 3*5+1 이므로 17 mod 3 = 1 -14 mod 5 -14 = 5* ( - 3) +1이므로 -14 mod 5 = 1 자바(Java) 풀이 백준 15829(Hashing)-Java(자바) * mod M : 모듈러 연산으로 시그마로 계산한 연산을 M으로 나눈 나머지를 의미 = %와 동일( 단, 나... blog.naver.com 자바의 경우 overflow 문제가 있어서 Math.pow를 사용하지 못하는 문제점이 있었지만 Python에서는 L = input()#문자열 길이 M=1234567891 s = input() sum=0 for i in r..
백준- 11399( ATM )- Python(파이썬)
백준- 11399( ATM )- Python(파이썬)
2022.05.11그리디 설명 [ '1', '2', '3', '4', '5'] map( int, input().split()) : 문자로 처리되어 있는 것을 Int형으로 모두 바꾸기 위해서 map( int, input().split()) = map( int, [ '1', '2', '3', '4', '5'] ) = map ([ 1, 2, 3, 4, 5]) sort 사용 input();#5 숫자 받기 array=list(map(int,input().split())) array.sort() count=0 total=0 for i in array: count+=i total+=count print(total) 정렬알고리즘 사용 1. 선택정렬을 이용한 경우 ( Selection Sort ) input();#5 숫자 받기 array..
백준 -2750 (수 정렬하기) - 선택정렬, 삽입정렬, 계수정렬
백준 -2750 (수 정렬하기) - 선택정렬, 삽입정렬, 계수정렬
2022.04.262750번: 수 정렬하기 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수 주어진다. 이 수는 절댓값이 1,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. www.acmicpc.net 정렬 설명 정렬 - 선택정렬,삽입정렬 정렬 : 데이터를 특정한 기준에 다라서 순서대로 나열 하는 것 1) 선택정렬(selection sort) 데이터가 무작위로 여러 개 있을 때, 이중에서 가장 작은 데이터를 선택해 맨 앞에 있는 데이터와 바꾸고, coooco.tistory.com 1) 선택정렬로 푼 경우 #선택 정렬 a = int(input()) arr=[] for i in range(a): arr.append(int(input())) for i in range(len..