Problem Solving

Problem Solving

    [백준, BOJ 9020] 골드바흐의 추측 (python)

    https://www.acmicpc.net/problem/9020 9020번: 골드바흐의 추측 1보다 큰 자연수 중에서 1과 자기 자신을 제외한 약수가 없는 자연수를 소수라고 한다. 예를 들어, 5는 1과 5를 제외한 약수가 없기 때문에 소수이다. 하지만, 6은 6 = 2 × 3 이기 때문에 소수가 아 www.acmicpc.net 내 생각 num이 주어졌을 때, half = num/2이 소수라면 답은 half이다. 하지만 half이 소수가 아니라면 half=half-1 한다. half가 소수가 될 때까지 위의 과정을 반복한다. half가 소수가 됐을 때, num-half도 소수라면 답은 half 소수가 아니라면 위의 과정을 다시 반복한다. 이렇게 half와 num-half가 둘 다 소수일 때까지 반복한다..

    [백준, BOJ 2747] 피보나치 수 (python)

    https://www.acmicpc.net/problem/2747 2747번: 피보나치 수 피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 된다. 이를 식으로 써보면 Fn = Fn-1 + Fn-2 (n ≥ 2)가 www.acmicpc.net n = int(input()) pb = [0, 1] for i in range(2, n+1): pb.append(pb[i-1] + pb[i-2]) print(pb[n])

    [백준, BOJ 2920] 음계 (python)

    https://www.acmicpc.net/problem/2920 2920번: 음계 다장조는 c d e f g a b C, 총 8개 음으로 이루어져있다. 이 문제에서 8개 음은 다음과 같이 숫자로 바꾸어 표현한다. c는 1로, d는 2로, ..., C를 8로 바꾼다. 1부터 8까지 차례대로 연주한다면 ascending, 8 www.acmicpc.net num = list(map(int, input().split())) asc = [1, 2, 3, 4, 5, 6, 7, 8] de = [8, 7, 6, 5, 4, 3, 2, 1] if (num == asc): print('ascending') elif (num == de): print('descending') else: print('mixed')

    [백준, BOJ 2750] 수 정렬하기 (python)

    https://www.acmicpc.net/problem/2750 2750번: 수 정렬하기 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 숫자가 주어진다. 이 수는 절댓값이 1,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. www.acmicpc.net n = int(input()) num = [] for i in range(0, n): num.append(int(input())) num.sort() for i in range(0, n): print(num[i])

    [백준, BOJ 10828] 스택 (python)

    https://www.acmicpc.net/problem/10828 10828번: 스택 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net n = int(input()) stack = [] ans = [] count = 0 for i in range(0, n): s = input().split() if s[0] == 'push': stack.append(s[1]) elif s[0] == 'pop': if len(stack) == 0: ans.append(-1) else: ans.append(stack[len(stac..

    [백준, BOJ 9012] 괄호 (python)

    https://www.acmicpc.net/problem/9012 9012번: 괄호 괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고 www.acmicpc.net 내 생각 '('가 나오면 n+=1, ')'가 나오면 n-=1 일 때, n이 음수가 되거나, 문자열이 끝났는데 아직 양수라면 NO라고 생각했다. t = int(input()) s = [] ans = [] for i in range(0, t): s.append(input()) ans.append('NO') for i in range(0, t): n = 0 for j in..

    [백준, BOJ 10946] 랜덤 게임~~~~ (python)

    https://www.acmicpc.net/problem/10946 10946번: 랜덤 게임~~~~ 1부터 2,147,483,647까지 정수 중에서 하나를 출력한다. 이 수가 채점 프로그램이 랜덤으로 얻은 수와 같으면 만점을 받는다. 채점 프로그램은 채점을 할 때마다 랜덤을 수행한다. 이 문제의 점수는 www.acmicpc.net 내 생각 무슨 이런 문제가 다 있지? ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ 아 이거 괜히 한번 제출하면 '틀렸습니다' 계속 떠 있어서 찝찝할 거 같은 기분이지만 오기가 생기는 문제네,,, 인생 재밌게 사시는 분... 저거 한 10번 정도 시도하다가 내 기록에 '틀렸습니다' 누적되는 거 싫어서 포기! import random print(random.randrange(1, 2147483648))

    [백준, BOJ 2798] 블랙잭 (python)

    https://www.acmicpc.net/problem/2798 2798번: 블랙잭 첫째 줄에 카드의 개수 N(3 ≤ N ≤ 100)과 M(10 ≤ M ≤ 300,000)이 주어진다. 둘째 줄에는 카드에 쓰여 있는 수가 주어지며, 이 값은 100,000을 넘지 않는 양의 정수이다. 합이 M을 넘지 않는 카드 3장 www.acmicpc.net 내 생각 크기가 3인 max_list 리스트를 만들고 입력 받은 수 중 3개를 max_list에 넣는다. 입력 받은 수를 하나씩 max_list의 가장 작은 수 min과 비교해서, min보다는 크지만 min 대신에 max_list에 들어와도 m을 넘지 않으면 조건에 성립한다고 생각했다. -> min 대신에 들어오면 m보다 커지지만 mid나 max 대신에 들어오면 m..

    [백준, BOJ 10872] 팩토리얼 (python)

    https://www.acmicpc.net/problem/10872 10872번: 팩토리얼 0보다 크거나 같은 정수 N이 주어진다. 이때, N!을 출력하는 프로그램을 작성하시오. www.acmicpc.net n = int(input()) mul = 1 for i in range(1,n+1): mul *= i print(mul)

    [백준, BOJ 11653] 소인수분해 (java)

    출처-https://www.acmicpc.net/problem/11653 11653번: 소인수분해 첫째 줄에 정수 N (1 ≤ N ≤ 10,000,000)이 주어진다. www.acmicpc.net 내 생각 처음에는 소수를 구해야 한다고 생각했다. 그런데 따로 소수를 구해주지 않아도 된다. 2로 나눌 수 있을 때까지 나눠주고, 그다음 3을 나눠주면 4를 나눌 차례가 되었을 때 어차피 2로 나눌 수 있을 때까지 나눠 주었기 때문에 더 이상 나눌 수 없어 5로 넘어가게 된다. 이렇게 2부터 순서대로 나눠주면 따로 소수를 구할 필요 없이 소인수분해를 할 수 있다. import java.util.Scanner; public class Main { public static void main(String[] args..