목록분류 전체보기 (188)
alpyrithm_알파이리즘
입출력(1) 알고리즘의 가장 기본인 입출력 문제들 2557 Hello World https://www.acmicpc.net/problem/2557 2557번: Hello World Hello World!를 출력하시오. www.acmicpc.net 풀이 print('Hello World!') 1000 A+B https://www.acmicpc.net/problem/1000 1000번: A+B 문제 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 A와 B가 주어진다. (0 < A, B < 10) 출력 첫째 줄에 A+B를 출력한다. 예제 입력 1 복사 1 2 예제 출력 1 복사 3 힌트 여기를 누르면 1000번 예제 소스를 볼 수 있습니다.... www.acmicp..
1-3. 탐색과 정렬(2) B - 1181 단어 정렬 https://www.acmicpc.net/problem/1181 1181번: 단어 정렬 첫째 줄에 단어의 개수 N이 주어진다. (1≤N≤20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문자열의 길이는 50을 넘지 않는다. www.acmicpc.net 문제 풀기 전 공부할 것 : 정렬, set 풀이 1 같은 단어가 여러 번 입력된 경우에는 한 번만 출력한다 --> set() 이용 정렬할 때 길이가 짧은 것부터, 길이가 같으면 사전 순 --> sorted()로 사전 순으로 정렬 후 길이가 짧은 것부터 출력한다 ==> 정답이긴 하나 시간이 오래 걸리고 난잡한 느낌이 있다. def sort_s..
1-3. 탐색과 정렬(2) A - 1026 보물 https://www.acmicpc.net/problem/1026 1026번: 보물 첫째 줄에 N이 주어진다. 둘째 줄에는 A에 있는 N개의 수가 순서대로 주어지고, 셋째 줄에는 B에 있는 수가 순서대로 주어진다. N은 50보다 작거나 같은 자연수이고, A와 B의 각 원소는 100보다 작거나 같은 음이 아닌 정수이다. www.acmicpc.net 문제 풀기 전 공부할 것 : 정렬, 탐색 풀이 1 A의 최소와 B의 최대를 짝 지어주면 된다. B를 재배열하면 안 되므로 A를 sort()하고 B의 최대의 index를 A와 연결해준다. N = int(input()) A = list(map(int, input().split())) B = list(map(int, i..
1-1. 탐색과 정렬 (1) A - 1920 수 찾기 https://www.acmicpc.net/problem/1920 1920번: 수 찾기 첫째 줄에 자연수 N(1≤N≤100,000)이 주어진다. 다음 줄에는 N개의 정수 A[1], A[2], …, A[N]이 주어진다. 다음 줄에는 M(1≤M≤100,000)이 주어진다. 다음 줄에는 M개의 수들이 주어지는데, 이 수들이 A안에 존재하는지 알아내면 된다. 모든 정수들의 범위는 int 로 한다. www.acmicpc.net 문제 풀기 전 공부할 것 : 이진 탐색, 정렬 풀이 1 이진 탐색은 값을 비교할 때마다 찾는 값이 있을 범위를 절반씩 좁히면서 탐색하는 효율적인 탐색 알고리즘이다. 이진 탐색의 계산 복잡도는 O(logn)으로 순차 탐색보다 더 효율적이다..