본문 바로가기

분류 전체보기

(42)
[Python]1194-달이 차오른다, 가자. https://www.acmicpc.net/problem/11941194번: 달이 차오른다, 가자.첫째 줄에 미로의 세로 크기 N과 가로 크기 M이 주어진다. (1 ≤ N, M ≤ 50) 둘째 줄부터 N개의 줄에 미로의 모양이 주어진다. 같은 타입의 열쇠가 여러 개 있을 수 있고, 문도 마찬가지이다. 그리고,www.acmicpc.net요즘 그래프관련 문제가 재밌어서 풀고 있다. 그래프 관련이기도 하고, 제목이 간지나서 풀게 됐다.내가 처음으로 풀어본 골드1 문제다. 처음엔 비트마스크를 할 생각을 못하고, visited[x][y]마다 set을 생성해서 가지고 있는 키를 정렬해서 키 in set이런 방식으로 구현하려는 어마무시한 생각을 했다..비트마스크를 처음 써봤는데, 재밌다. from collection..
[Python&C++]7868-해밍 수열 https://www.acmicpc.net/problem/7868 7868번: 해밍 수열 문제 세 소수 p1, p2, p3을 이용해서 해밍 수열 H(p1, p2, p3), i = 1... 을 정의할 수 있다. 해밍 수열 H(p1, p2, p3)은 소인수가 p1, p2, p3로만 이루어진 자연수의 오름 차순 목록이다. 예를 들어, H(2, 3, 5) = 2, 3 www.acmicpc.net 나 혼자서 풀어낸 두번째 골드다. (처음은 1043-거짓말) 그래프문제를 최근 풀어보기 시작했는데, 굉장히 재밌다. (1012-유기농 배추로 입문. 그때는 내가 하고있는게 dfs인줄도 모르고 풀었다.) 이제 문제를 설명하겠다. 나는 O(n^3)으로 풀었다. 수열 H의 원소는 $ 0 \leq i, j, k \leq 60$..
[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 =..