https://www.acmicpc.net/problem/3036 3036번: 링 출력은 총 N-1줄을 해야 한다. 첫 번째 링을 제외한 각각의 링에 대해서, 첫 번째 링을 한 바퀴 돌리면 그 링은 몇 바퀴 도는지 기약 분수 형태 A/B로 출력한다. www.acmicpc.net 간단한 수학문제다. # 링 import sys, math input = sys.stdin.readline N = int(input()) R = list(map(int, input().split())) for i in range(1, N): value = math.gcd(R[0], R[i]) print(R[0]//value, '/', R[i]//value, sep='')
https://www.acmicpc.net/problem/1021 1021번: 회전하는 큐 첫째 줄에 큐의 크기 N과 뽑아내려고 하는 수의 개수 M이 주어진다. N은 50보다 작거나 같은 자연수이고, M은 N보다 작거나 같은 자연수이다. 둘째 줄에는 지민이가 뽑아내려고 하는 수의 위치가 www.acmicpc.net 요즘 자료구조 문제를 많이 푸는 것 같다. 이 문제는 회전하는 큐를 덱으로 구현하는 문제이다. idx라는 변수를 두어 answer에 넣어야 하는 수가 무엇인지 검사하였다. (입력의 num 배열로) 만약 아니라면, 1번 연산을 다시 되돌리고 찾고자 하는 수의 위치를 찾는다. 인덱스가 앞쪽이면 2번 연산을, 뒤쪽이면 3번 연산을 수행한다. 이때 인덱스 비교를 할 때 // 대신 / 를 써야 한다. ..
https://www.acmicpc.net/problem/10816 10816번: 숫자 카드 2 첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10, www.acmicpc.net 리스트로 하면 무조건 시간 초과가 날 것 같았다. 따라서 딕셔너리를 사용하여 해당 카드의 수가 몇 번 나왔는지 value로 저장하였다. 즉, card라는 list에서 10이 3번 나왔으면 {10 : 3} 이렇게 저장되는 것이다. 그리고 만약에 find_number에 일치하는 키가 있다면 값을 출력해주면 되고 만약 없다면 0을 출력한다. 딕셔너리에서 in 연산은 시..
https://www.acmicpc.net/problem/1158 1158번: 요세푸스 문제 첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 5,000) www.acmicpc.net 처음에는 재귀로 풀었는데 런타임 에러가 떴다. 그래서 재귀를 안 쓰고 푸는 방법을 생각하다가 바로 Q에서 popleft하는 방법이 떠올랐다. 코드도 훨씬 간단해졌다. # 요세푸스 문제 import sys from collections import deque input = sys.stdin.readline N, K = map(int, input().split()) Q = deque([i for i in range(1, N+1)]) answer = [] while Q: for i in ran..
https://www.acmicpc.net/problem/1759 1759번: 암호 만들기 첫째 줄에 두 정수 L, C가 주어진다. (3 ≤ L ≤ C ≤ 15) 다음 줄에는 C개의 문자들이 공백으로 구분되어 주어진다. 주어지는 문자들은 알파벳 소문자이며, 중복되는 것은 없다. www.acmicpc.net 주어진 알파벳으로 만들수 있는 모든 경우의 수를 조사한다. (브루트포스) 그 경우가 유망하면 계속 탐색하고 그렇지 않으면 더 조사하지 않는다. (백트래킹) 모음의 개수만 생각했는데 자음의 개수도 고려해줘야 한다. 따라서 chk라는 배열을 선언하여 자음의 개수와 모음의 개수 모드를 검사하였다. # 암호 만들기 import sys input = sys.stdin.readline L, C = map(int,..
https://www.acmicpc.net/problem/2839 2839번: 설탕 배달 상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그 www.acmicpc.net 문제를 보자마자 바로 그리디가 떠올랐다. 그리디 문제를 많이 풀어보지 않아 개념을 찾아가며 풀었다. 5로 나누어 떨어질 때, 그렇지 않으면 3만큼 줄여가며 N을 감소시킨다. 그러다가 while문이 끝날 때까지 가능하지 않으면 -1을 출력하는 간단한 프로그램이다. 그리디 공부를 더 열심히 해야 할 것 같다. # 설탕 배달 import sys input = sys.stdin.readline N = int(inp..
https://www.acmicpc.net/problem/1358 1358번: 하키 첫째 줄에 수 W H X Y P가 주어진다. P는 선수의 수이다. W와 H는 100보다 작거나 같은 자연수이고, H는 짝수이다. X와 Y는 절댓값이 100보다 작거나 같은 정수이다. P는 최대 50인 자연수이다. 둘째 줄부 www.acmicpc.net 이 문제는 두 점 사이의 거리를 구할 수 있느냐 없느냐를 묻는 간단한 수학 문제이다. 나는 세 가지의 경우로 나누어 조건문을 작성하였다. 1. 플레이어가 사각형 내부에 있느냐 2. 플레이어가 왼쪽 원(R1) 내부에 있느냐 3. 플레이어가 오른쪽 원(R2) 내부에 있느냐 물론 중복되는 경우도 있지만 생각한 방법은 위와 같았다! # 하키 import sys input = sys..
https://www.acmicpc.net/problem/1015 1015번: 수열 정렬 P[0], P[1], ...., P[N-1]은 0부터 N-1까지(포함)의 수를 한 번씩 포함하고 있는 수열이다. 수열 P를 길이가 N인 배열 A에 적용하면 길이가 N인 배열 B가 된다. 적용하는 방법은 B[P[i]] = A[i]이다. 배열 A가 주 www.acmicpc.net 하.. 문제를 이해하는게 어려웠다... (글을 많이 읽자...) 그래서 B가 오름차순이라는건지~ 내림차순이라는건지~ 헷갈렸다 ㅎㅎ... 결론부터 말하자면!! A를 정렬하는 문제이다! 인덱스와 값에 모두 접근하기 위해 딕셔너리를 사용했는데 굳이? 사용해야 하나 싶긴 하다. A가 중복이 가능하기 때문에 방문처리도 해줘야 한다. 따라서 visited..
- Total
- Today
- Yesterday
- 2805
- 싸피
- 10845
- 스택
- 자료구조
- 10816
- 10971
- 파이썬
- 1715
- 덱
- 17478
- 1764
- 10815
- 큐
- heapq
- 빌림
- 수학
- 삼성청년소프트웨어아카데미
- 1759
- 1358
- 조합
- 프로그래머스
- 백트래킹
- 백준
- 11051
- 1182
- 러스트
- dp
- 브루트포스
- 딕셔너리
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |