본문 바로가기

알고리즘/BOJ

(23)
[Python&C++]1037-약수 https://www.acmicpc.net/problem/1037 1037번: 약수 첫째 줄에 N의 진짜 약수의 개수가 주어진다. 이 개수는 50보다 작거나 같은 자연수이다. 둘째 줄에는 N의 진짜 약수가 주어진다. 1,000,000보다 작거나 같고, 2보다 크거나 같은 자연수이고, 중복되� www.acmicpc.net 1과 자기자신을 제외한 약수중 가장 작은약수*가장 큰약수가 자기 자신이기때문에, 정렬한뒤 처음과 마지막을 곱했다. Python _ = input() a = [int(i) for i in input().split()] a.sort() print(a[0]*a[-1]) C++ #include #include int main() { int a,b[50]; scanf("%d", &a); for(i..
[Python&C++]1026-보물 https://www.acmicpc.net/problem/1026 1026번: 보물 첫째 줄에 N이 주어진다. 둘째 줄에는 A에 있는 N개의 수가 순서대로 주어지고, 셋째 줄에는 B에 있는 수가 순서대로 주어진다. N은 50보다 작거나 같은 자연수이고, A와 B의 각 원소는 100보다 작거� www.acmicpc.net A의 순서를 출력할 필요가 없기때문에, 사실 B도 재배열 해도 된다. 그래서, A를 오름차순, B를 내림차순으로 정렬해서, 간단하게 구현했다. Python _ = input() a = [int(i) for i in input().split()] b = [int(i) for i in input().split()] a.sort() b.sort(reverse = True) result = 0 ..
[Python&C++]1032-명령 프롬포트 https://www.acmicpc.net/problem/1032 1032번: 명령 프롬프트 첫째 줄에 파일 이름의 개수 N이 주어진다. 둘째 줄부터 N개의 줄에는 파일 이름이 주어진다. N은 50보다 작거나 같은 자연수이고 파일 이름의 길이는 모두 같고 길이는 최대 50이다. 파일이름은 �� www.acmicpc.net 같은인덱스에 있는 문자들이 같아야만 알파벳을 넣을 수 있으므로, for문을 돌려서 같지않다는 결과가 나오지 않는 알파벳만 패턴에 넣어주고, 한번이라도 같은인덱스에서 다른 문자가 나오면, ?를 패턴에 넣어준다. Python inputs = [] for _ in range(int(input())): inputs.append(input()) pattern = '' for i in range(..
[Python&C++]1004-어린 왕자 https://www.acmicpc.net/problem/1004 1004번: 어린 왕자 입력의 첫 줄에는 테스트 케이스의 개수 T가 주어진다. 그 다음 줄부터 각각의 테스트케이스에 대해 첫째 줄에 출발점 (x1, y1)과 도착점 (x2, y2)이 주어진다. 두 번째 줄에는 행성계의 개수 n이 주�� www.acmicpc.net 우주선의 크기를 고려할 필요가 없고, 행성계의 경계가 맞닿거나 서로 교차하는 경우도 없고 출발점이나 도착점이 행성계 경계에 걸쳐진 경우 역시 없기 때문에, 출발점과 도착점이 원 안에 있을때만 행성계를 진입/이탈하게 된다. 하지만, 시작점과 도착점이 같은 행성계에 있을 경우 진입/이탈을 하지 않아도 되기 때문에, ^(XOR)을 이용해서, 시작점과 도착점이 같은 원 안에 있으면 0을..
[Python&C++]1003-피보나치 함수 https://www.acmicpc.net/problem/1003 1003번: 피보나치 함수 각 테스트 케이스마다 0이 출력되는 횟수와 1이 출력되는 횟수를 공백으로 구분해서 출력한다. www.acmicpc.net 처음에는 1과 0의 개수의 규칙을 찾으려 헀는데, N이 되게 작아서, 그냥 처음 시작할때 배열에 40이하의 모든 피보나치 수의 0, 1 개수를 구하고, 입력에 따라 적절히 출력하는 방식으로 구현했다. Python def fibonacci(n): global fibonacciList if n == 0: fibonacciList[n][0] += 1 elif n == 1: fibonacciList[n][1] += 1 else: fibonacciList[n][0] += fibonacciList[n-2..
[Python&C++]1002-터렛 https://www.acmicpc.net/problem/1002 1002번: 터렛 각 테스트 케이스마다 류재명이 있을 수 있는 위치의 수를 출력한다. 만약 류재명이 있을 수 있는 위치의 개수가 무한대일 경우에는 -1을 출력한다. www.acmicpc.net (x1, y1)이 중심이고, 반지름이 r1인 원과, (x2, y2)이 중심이고, 반지름이 r2인 원의 교점 개수 구하는 문제이다. Python import math for _ in range(int(input())): x1, y1, r1, x2, y2, r2 = [int(i) for i in input().split()] circleDistance = math.sqrt((x1-x2)**2 + (y1-y2)**2) if x1 == x2 and y1 =..
[Python&C++]2490-윷놀이 https://www.acmicpc.net/problem/2490 2490번: 윷놀이 우리나라 고유의 윷놀이는 네 개의 윷짝을 던져서 배(0)와 등(1)이 나오는 숫자를 세어 도, 개, 걸, 윷, 모를 결정한다. 네 개 윷짝을 던져서 나온 각 윷짝의 배 혹은 등 정보가 주어질 때 도(배 한 � www.acmicpc.net 1의 개수에따라 윷의 상태가 하나로 정해지기 때문에, 1의 개수만 세주면 된다. Python 코드 for i in range(3): result = 0 for k in input().split(): result += int(k) if result == 0: print('D') elif result == 1: print('C') elif result == 2: print('B') elif..