알고리즘

알고리즘

9996-백준-한국이 그리울 땐 서버에 접속하지

1. 문제 출처 https://www.acmicpc.net/problem/9996 9996번: 한국이 그리울 땐 서버에 접속하지 총 N개의 줄에 걸쳐서, 입력으로 주어진 i번째 파일 이름이 패턴과 일치하면 "DA", 일치하지 않으면 "NE"를 출력한다. 참고로, "DA"는 크로아티어어로 "YES"를, "NE"는 "NO"를 의미한다. www.acmicpc.net 2. 풀이 2가지 방법이 존재한다. 1. 정규 표현식 미사용 # 테스트 케이스 개수 받기 N = int(input()) # 패턴 받은 후 *을 기준으로 자른다. pattern = input().split("*") # 패턴의 길이 구하기 pattern_len = len(pattern[0])+len(pattern[1]) def check(): # 결과..

알고리즘/너비 우선 탐색(bfs)

9205-백준-맥주 마시면서 걸어가기

1. 문제 출처 https://www.acmicpc.net/problem/9205 9205번: 맥주 마시면서 걸어가기 송도에 사는 상근이와 친구들은 송도에서 열리는 펜타포트 락 페스티벌에 가려고 한다. 올해는 맥주를 마시면서 걸어가기로 했다. 출발은 상근이네 집에서 하고, 맥주 한 박스를 들고 출발한다. www.acmicpc.net 2. 풀이 # 테스트 테이스의 개수 t = int(input()) # 편의점 좌표 입력받는 함수 get_coordinate = (lambda : list(map(int,input().split())) ) # 길이 구하는 함수 get_legth = (lambda start , end : abs(start[0]-end[0])+abs(start[1]-end[1])) # 결과 저장하..

알고리즘

9536-백준-여우는 어떻게 울지?

1. 문제 출처 https://www.acmicpc.net/problem/9536 9536번: 여우는 어떻게 울지? 각 테스트케이스마다 여우의 울음소리를 한 줄씩, 녹음된 순서대로 출력한다. 여우의 울음소리가 녹음되어 있음이 보장된다. (알려진 것과는 달리, 여우는 모스 부호로 의사소통하지 않는다.) www.acmicpc.net 2. 풀이 # 테스트 케이스 개수 N = int(input()) for _ in range(N): # 녹음된 것을 받는다. record_list = input().split() # 다른 동물의 소리를 what does the fox say?가 나올 때 까지 받는다. other_animals = input().split() while other_animals[0] != "what"..

알고리즘/너비 우선 탐색(bfs)

7562-백준-나이트의 이동

1. 문제 출처 https://www.acmicpc.net/problem/7562 7562번: 나이트의 이동 체스판 위에 한 나이트가 놓여져 있다. 나이트가 한 번에 이동할 수 있는 칸은 아래 그림에 나와있다. 나이트가 이동하려고 하는 칸이 주어진다. 나이트는 몇 번 움직이면 이 칸으로 이동할 수 www.acmicpc.net 2. 풀이 # 테스트 케이스 개수 받기 test_case_num = int(input()) # 나이트 8방향으로 이동 시 바뀌는 좌표 크기 # 원점이 좌측 상단 꼭지점이고 오른쪽, 아래쪽으로 갈 때 마다 # 1 씩 좌표가 늘어나고 그 반대는 1씩 줄어 든다 # x좌표 변화량 리스트 # x 좌표 변화량 리스트가 4인 이유는 # 원래 [-2,-1,1,2,-2,-1,1,2] 인데 -2,-..

알고리즘

백준-1141-접두사

1. 문제 출처 https://www.acmicpc.net/problem/1141 1141번: 접두사 접두사X 집합이란 집합의 어떤 한 단어가, 다른 단어의 접두어가 되지 않는 집합이다. 예를 들어, {hello}, {hello, goodbye, giant, hi}, 비어있는 집합은 모두 접두사X 집합이다. 하지만, {hello, hell}, {giant, www.acmicpc.net 2. 풀이 N = int(input()) input_list = [0] * N for idx in range(N): input_list[idx] = input() # 글자 길이 순으로 버블 정렬 for i in range(N): min_len = len(input_list[i]) min_idx = i for j in ran..

알고리즘/그리드 알고리즘

백준_11047_동전 문제

문제 출처 https://www.acmicpc.net/problem/11047 11047번: 동전 0 첫째 줄에 N과 K가 주어진다. (1 ≤ N ≤ 10, 1 ≤ K ≤ 100,000,000) 둘째 줄부터 N개의 줄에 동전의 가치 Ai가 오름차순으로 주어진다. (1 ≤ Ai ≤ 1,000,000, A1 = 1, i ≥ 2인 경우에 Ai는 Ai-1의 배수) www.acmicpc.net 해결(코드) 단순한 그리디 알고리즘 문제이다. # 동전 갯수 , 목표 액수 받기 input_list = input().split() N = int(input_list[0]) K = int(input_list[1]) # 동전 개수 만큼 배열 생성 coin_list = [0] * N # 빈리스트로 생성 해서 append해도 되..

알고리즘/브루트 포스

백준 - 6603 - 로또

문제 출처 https://www.acmicpc.net/problem/6603 6603번: 로또 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루어져 있다. 첫 번째 수는 k (6 < k < 13)이고, 다음 k개 수는 집합 S에 포함되는 수이다. S의 원소는 오름차순으로 www.acmicpc.net 풀이 1번 itertools를 이용 import sys from itertools import combinations #def list_int_input(): # return [int(i) for i in input().split(" ")] while True: input_list = list(map(int,sys.stdin.readline().split())) if len(..

easysheep
'알고리즘' 카테고리의 글 목록 (8 Page)