본문 바로가기

코딩테스트

(4)
[알고리즘] 트리, 그래프에 대하여 그래프(Graph) : 사이클이 존재하는 그래프 개체는 노드(Node) 관계는 간선(Edge) 무방향 그래프 (Undirected Graph) A와 B가 연결되어 있으면 B와 A도 연결되어 있다 방향 그래프 (Directed Acyclic Graphs) 간선에 방향이 존재하는 그래프 A → C 일 때, C → A 인 건 아니다 여기서 사이클 이라는 중요 개념이 등장한다 💡 사이클 : 시작 정점과 끝나는 정점이 동일한 경로 사이클이 존재하지 않는 방향 그래프는 DAG(Directed Acyclic Graphs) 트리는 사이클이 존재하지 않는 DAG 이다 가중치 그래프 간선에 가중치, 즉 비용이 추가된 그래프이다 A → B로 갈때 10 만큼의 비용이 필요하다, 라는 느낌 트리(Tree) : 사이클이 존재하지..
[알고리즘] 코틀린으로 큐(Queue) 구현하기 🔑 문제 첫 번째 숫자를 1 감소한 뒤, 맨 뒤로, 다음 첫 번째 수는 2감소한 뒤 맨 뒤로, 첫 번째 수는 3을 감소, 그 다음 수는 4, 그 다음 수는 5를 감소해 다음 오는 첫 번째 수는 다시 1을 감소한 후 맨 뒤로 보낸다. 이 작업을 반복한다. 숫자가 감소할 때 0보다 작아지는 경우 0, 맨 뒤로 보내는 숫자가 0일 경우에도 수를 맨 뒤로 보낸 이후 한 과정이 종료된다. 이 때의 8자리의 숫자 값이 암호가 된다. [조건] 문제는 queue를 사용해 해결해야 한다. 지인의 학교 수업 문제로, 저작권 상 자세한 설명은 생략 🧸 풀이 코틀린에서는 Queue를 바로 사용할 수 없고, 자바의 기능을 사용해야 한다 LinkedList 사용! java.util.LinkedList를 import 해주어야 한다..
[알고리즘] 선택 정렬, 이진 탐색으로 X보다 큰 정수만 출력하기 🔑 문제 정수 N개로 주어진 수열 A와 정수 X가 주어질때, A에서 X보다 큰 수를 모두 출력하는 프로그램을 작성하시오. [조건] 선택정렬(or 버블정렬)과 이원탐색 원리를 필수로 사용할 것 X보다 큰 수 가 없을 경우 Error를 출력 🧸 풀이 여기에서, 일단 입력받는 부분은 # N개의 정수를 입력받고, X보다 큰 수를 찾기 위한 정수 선언 N, X = map(int, input().split()) # 수열 A list = input() A = list.split() if len(A) != N: print(N, "개의 숫자를 입력하셔야 합니다.", sep="") 이 부분이다. N은 정수의 개수, X는 큰 수를 찾을 때 기준이 되는 수 A는 정수 N개를 담을 수열 이 때, 리스트 A의 길이가 N과 같지 ..
[백준] Python # 11021 : A+B - 7 반복문을 활용한 Python 문제이다. 제출 코드 import sys input = sys.stdin.readline T = int(input()) total = [] for i in range(T): A, B = map(int, input().split()) total.append(A + B) for j in range(T): print("Case #", j+1, ": ", total[j], sep = "") 풀이 sys 모듈을 사용하기 위해 import sys 를 프로그램의 시작 부분에 추가하였다. sys.stdin은 사용자로부터 키보드 입력을 받는 기본적인 입력 스트림, readline 은 표준 입력에서 한 줄씩 문자열을 읽는 함수이다. sys.stdin.readline 함수를 input 변수에 할..