전체 글
-
백준 수 정렬하기 2 - 2751번 파이썬백준/단계별로 풀어보기 2020. 6. 24. 21:31
이 포스팅에서는 백준 알고리즘 사이트 2751번을 파이썬으로 코딩해보도록 하겠습니다. 이번 문제는 정수 n과 n개의 수를 입력받고, 오름차순으로 정렬해 출력하면 되는 문제입니다. 다만 이 문제는 시간이 중요해서 빠른 입력을 위해 import sys로 sys.stdin.readline을 이용했습니다. 그리고 기본 정렬 함수의 시간 복잡도가 O(nlogn)이므로 기본 정렬 함수를 이용했습니다 import sys num = int(sys.stdin.readline()) num_list = [] for i in range(num): a = int(sys.stdin.readline()) num_list.append(a) num_list.sort() for i in num_list: print(i) cs 이렇게 s..
-
백준 수 정렬하기 - 2750번 파이썬백준/단계별로 풀어보기 2020. 6. 21. 22:03
이 포스팅에서는 백준 알고리즘 사이트 2750번을 파이썬으로 코딩해보도록 하겠습니다. 이번 문제는 n과 n개의 수를 입력받고, n개의 수를 오름차순으로 정렬해 출력하면 되는 문제입니다. num = int(input()) num_list = [] for i in range(num): a = int(input()) num_list.append(a) num_list.sort() for i in num_list: print(i) cs 저는 입력받은 값들을 리스트에 넣은다음 sort함수를 이용해 오름차순으로 정렬하는 방법을 썼습니다. 이렇게 코드를 작성하면 쉽게 문제를 풀 수 있습니다.
-
백준 블랙잭 - 2798번 파이썬백준/단계별로 풀어보기 2020. 6. 20. 17:51
이 포스팅에서는 백준 알고리즘 사이트 2798번을 파이썬으로 코딩해보도록 하겠습니다. 이번 문제는 n, m, n개의 정수를 입력받은 다음, n개의 정수들을 더했을때 최대한 m과 가까운 수를 출력하면 되는 문제입니다. n, m = map(int, input().split()) a = list(map(int, input().split())) b = len(a) sum = 0 for i in range(0, b - 2): for j in range(i + 1, b - 1): for k in range(j + 1, b): if a[i] + a[j] + a[k] > m: continue else: sum = max(sum, a[i] + a[j] + a[k]) print(sum) Colored by Color Sc..
-
백준 크로아티아 알파벳 - 2941번 파이썬백준/단계별로 풀어보기 2020. 6. 19. 20:20
이 포스팅에서는 백준 알고리즘 사이트 2941번을 파이썬으로 코딩해보도록 하겠습니다. 이번 문제는 문장을 입력받고, 그 문장에 쓰인 크로아티아 알파벳의 개수를 출력하면 되는 문제입니다. sentence = input() cro_list = ['dz=', 'c=', 'c-', 'd-', 'lj', 'nj', 's=', 'z='] count = 0 where = 0 for index, i in enumerate(sentence): if where == index: if sentence[index:index+3] == cro_list[0]: count += 1 where = index+3 else: for j in range(1, 8): if sentence[index:index+2] == cro_list[j..
-
백준 그룹 단어 체커 - 1316번 파이썬백준/단계별로 풀어보기 2020. 6. 18. 15:46
이 포스팅에서는 백준 알고리즘 사이트 1316번을 파이썬으로 코딩해보도록 하겠습니다. 이번 문제는 단어의 개수 N을 입력받고, N개의 단어를 입력받은 그룹 단어인 단어의 개수를 출력하는 문제입니다. 그룹 단어는 단어의 모든 문자가 한번 이상 연속해서 나타나는 단어입니다. 다만 중간에 연속되는 중간에 다른 문자가 들어오면 그룹 단어가 아닙니다. a = int(input()) result = 0 for i in range(a): word = input() alphabet = [0]*26 value = 1 last = word[0] for j in word: if last == j and alphabet[ord(j)-97] == 0: alphabet[ord(j)-97] = 1 elif last != j and..
-
백준 별 찍기 - 21 - 10996번 파이썬백준/단계별로 풀어보기 2020. 6. 17. 21:12
이 포스팅에서는 백준 알고리즘 사이트 10996번을 파이썬으로 코딩해보도록 하겠습니다. 이번 문제는 정수 n을 입력받고, 특별한 조건에 따라 별을 출력하면 되는 문제입니다. 특별한 조건은 푸는 방법에 따라 다를 수 있는데, 저는 1. 홀수줄의 홀수번째에는 별 출력 2. 짝수줄의 짝수번째에는 별 출력 라는 조건을 사용해서 문제를 풀었습니다. a = int(input()) for i in range(1, a*2+1): if a==1: print("*") break else: if i % 2 != 0: # 홀수줄 출력 for j in range(1, a+1): if j % 2 != 0: # 홀수 print("*", end="") else: print(" ", end="") print("") else: # 짝수..
-
백준 별 찍기 - 9 - 2446번 파이썬백준/단계별로 풀어보기 2020. 4. 19. 14:56
이 포스팅에서는 백준 알고리즘 사이트 2446번을 파이썬으로 코딩해보도록 하겠습니다. 이번 문제는 정수 N을 입력받고, 첫째 줄부터 2×N-1번째 줄까지 차례대로 별을 출력하면 되는 문제입니다. num = int(input()) for i in reversed(range(1, num + 1)): print(' ' * (num - i) + "*" * (2 * i - 1)) for i in range(2, num + 1): print(' ' * (num - i) + "*" * (2 * i - 1)) Colored by Color Scripter cs 저는 이렇게 윗쪽삼각형은 reversed를 사용해서 출력했고, 아랫쪽삼각형은 평소대로 range만 써서 출력했습니다. 여기서 reversed는 range의 수를..
-
백준 소수 찾기 - 1978번 파이썬백준/단계별로 풀어보기 2020. 4. 13. 10:54
이 포스팅에서는 백준 알고리즘 사이트 1978번을 파이썬으로 코딩해보도록 하겠습니다. 이번 문제는 N과 N개의 숫자를 입력받고, 소수의 개수를 출력하면 되는 문제입니다. num = int(input()) num_list = list(map(int, input().split())) for i in range(num): if num_list[i] == 1: num -= 1 else: for j in range(2, num_list[i]): if num_list[i] % j == 0: num -= 1 break print(num) Colored by Color Scripter cs 저는 이렇게 list로 입력을 받고, for문과 if문으로 소수인지 판별한다음 소수면 num - 1 을 하도록 코드를 짰습니다.