본문 바로가기

전체 글

(227)
10819번: 차이를 최대로 / silver 2 / 브루트포스, 순열 https://www.acmicpc.net/problem/10819 10819번: 차이를 최대로 첫째 줄에 N (3 ≤ N ≤ 8)이 주어진다. 둘째 줄에는 배열 A에 들어있는 정수가 주어진다. 배열에 들어있는 정수는 -100보다 크거나 같고, 100보다 작거나 같다. www.acmicpc.net ''' 10819번: 차이를 최대로 / silver 2 / 브루트포스, 순열 ''' import itertools # N, arr 입력받기 N = int(input()) arr = list(map(int, input().split())) # 순열 활용 case_arr 만들기 case_arr = itertools.permutations(arr, N) # 최대값 구하기 max_res = 0 # case_arr 에서..
17413번: 단어 뒤집기 2 / silver 3 / 구현, 스택, 문자열 https://www.acmicpc.net/problem/17413 17413번: 단어 뒤집기 2 문자열 S가 주어졌을 때, 이 문자열에서 단어만 뒤집으려고 한다. 먼저, 문자열 S는 아래와과 같은 규칙을 지킨다. 알파벳 소문자('a'-'z'), 숫자('0'-'9'), 공백(' '), 특수 문자('')로만 이루어져 www.acmicpc.net ''' 17413번: 단어 뒤집기 2 / silver 3 / 구현, 스택, 문자열 ''' # S 문자열 입력받기 S = input() # stack, reverse_flag 선언 및 초기화 stack = [] reverse_flag = True # S 문자열 문자 하나씩 확인하기 for v in S: # flag=False일때 if reverse_flag == Fa..
10867번: 중복 빼고 정렬하기 / silver 5 / 정렬 https://www.acmicpc.net/problem/10867 10867번: 중복 빼고 정렬하기 첫째 줄에 수의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째에는 숫자가 주어진다. 이 수는 절댓값이 1,000보다 작거나 같은 정수이다. www.acmicpc.net ''' 10867번: 중복 빼고 정렬하기 / silver 5 / 정렬 ''' n = int(input()) arr = list(set(map(int, input().split()))) arr.sort() for i in arr: print(i, end=' ') 코드 리뷰 - n개의 정수를 중복 없이 오름차순으로 정렬하는 문제입니다. - 중복이 있는 숫자를 없애기 위해 set()로 정수들을 입력받고, 다시 list()로 바꿔준 ..
2293번: 동전 1 / gold 5 / DP https://www.acmicpc.net/problem/2293 2293번: 동전 1 첫째 줄에 n, k가 주어진다. (1 ≤ n ≤ 100, 1 ≤ k ≤ 10,000) 다음 n개의 줄에는 각각의 동전의 가치가 주어진다. 동전의 가치는 100,000보다 작거나 같은 자연수이다. www.acmicpc.net ''' 2293번: 동전 1 / gold 5 / DP ''' import sys input = sys.stdin.readline # n, k, coin_list 입력받기 n, k = map(int, input().split()) coin_list = [] for _ in range(n): coin_list.append(int(input())) # DP 리스트 초기화 dp = [0 for _ in r..
1057번: 토너먼트 / silver 4 / 브루트포스 https://www.acmicpc.net/problem/1057 1057번: 토너먼트 김지민은 N명이 참가하는 스타 토너먼트에 진출했다. 토너먼트는 다음과 같이 진행된다. 일단 N명의 참가자는 번호가 1번부터 N번까지 배정받는다. 그러고 난 후에 서로 인접한 번호끼리 스타를 www.acmicpc.net ''' 1057번: 토너먼트 / silver 4 / 브루트포스 ''' # A, B 친구가 같은 라운드에서 경기하는지 확인하는 함수 def check_round(div, N, A, B): A -= 1 B -= 1 if A // div == B // div: return True return False return False # 참가자 수 N, 친구 둘 A, B 입력받기 N, A, B = map(int, i..
14890번: 경사로 / gold 3 / 구현 https://www.acmicpc.net/problem/14890 14890번: 경사로 첫째 줄에 N (2 ≤ N ≤ 100)과 L (1 ≤ L ≤ N)이 주어진다. 둘째 줄부터 N개의 줄에 지도가 주어진다. 각 칸의 높이는 10보다 작거나 같은 자연수이다. www.acmicpc.net ''' 14890번: 경사로 / gold 3 / 구현 ''' import sys input = sys.stdin.readline # N, L, graph 입력받기 N, L = map(int, input().split()) graph = [] for _ in range(N): graph.append(list(map(int, input().split()))) cnt = 0 # 행 한줄씩 검사하기 for x in range(..
1520번: 내리막 길 / gold 3 / DP, DFS https://www.acmicpc.net/problem/1520 1520번: 내리막 길 여행을 떠난 세준이는 지도를 하나 구하였다. 이 지도는 아래 그림과 같이 직사각형 모양이며 여러 칸으로 나뉘어져 있다. 한 칸은 한 지점을 나타내는데 각 칸에는 그 지점의 높이가 쓰여 있으 www.acmicpc.net - 시간초과 ''' 1520번: 내리막 길 / gold 3 / ''' import sys input = sys.stdin.readline sys.setrecursionlimit(10**8) dx = [-1, 1, 0, 0] dy = [0, 0, -1, 1] cnt = 0 def dfs(x, y): global cnt if x == n - 1 and y == m - 1: cnt += 1 else: for..
1946번: 신입 사원 / silver 1 / 그리디, 정렬 https://www.acmicpc.net/problem/1946 1946번: 신입 사원 첫째 줄에는 테스트 케이스의 개수 T(1 ≤ T ≤ 20)가 주어진다. 각 테스트 케이스의 첫째 줄에 지원자의 숫자 N(1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개 줄에는 각각의 지원자의 서류심사 성 www.acmicpc.net - 시간 초과 ''' 1946번: 신입 사원 / silver 1 / ''' import sys input = sys.stdin.readline T = int(input()) for _ in range(T): N = int(input()) applicant = [] for _ in range(N): x, y = map(int, input().split()) applicant.a..