Koala - 7기

1. 문제 5598번: 카이사르 암호 가이우스 율리우스 카이사르(Gaius Julius Caesar)는 고대 로마 군인이자 정치가였다. 카이사르는 비밀스럽게 편지를 쓸 때, 'A'를 'D로', 'B'를 'E'로, 'C'를 'F'로... 이런 식으로 알파벳 문자를 3개씩 건 www.acmicpc.net 2. 코드 caesar = list(input()) for i in range(len(caesar)): re = ord(caesar[i]) - 3 if re < ord('A'): re += 26 caesar[i] = chr(re) print(''.join(caesar)) 3. 풀이 - 카이사르 암호는 알파벳을 3개씩 건너띄어쓴다. 복구할때는 기존의 알파벳 3개 전 알파벳을 대응한다. - 이때, 알파벳에 숫자..
1504번: 특정한 최단 경로 (acmicpc.net) 1504번: 특정한 최단 경로 첫째 줄에 정점의 개수 N과 간선의 개수 E가 주어진다. (2 ≤ N ≤ 800, 0 ≤ E ≤ 200,000) 둘째 줄부터 E개의 줄에 걸쳐서 세 개의 정수 a, b, c가 주어지는데, a번 정점에서 b번 정점까지 양방향 길이 존 www.acmicpc.net 문제 해석 방향성이 없는 그래프에서 주어진 2가지의 노드를 거친 1번 노드에서 N번 노드까지의 최단거리를 구하는 문제이다. 만약 경로가 없을 경우, -1를 출력한다. 코드 문제 풀이 3번의 다익스트라를 사용하여 문제를 풀었다. 1번 노드에서 출발하는 다익스트라를 통해 1번 노드 -> 중간노드1, 1번노드 -> 중간노드2의 거리를 구하고 중간노드1에서 출발하는 다익..
2480번: 주사위 세개 (acmicpc.net) 2480번: 주사위 세개 1에서부터 6까지의 눈을 가진 3개의 주사위를 던져서 다음과 같은 규칙에 따라 상금을 받는 게임이 있다. 같은 눈이 3개가 나오면 10,000원+(같은 눈)×1,000원의 상금을 받게 된다. 같은 눈이 2개 www.acmicpc.net 문제 분석 분류 수학 사칙연산 문제설명 입력 출력 소스코드
https://www.acmicpc.net/problem/1238 1238번: 파티 첫째 줄에 N(1 ≤ N ≤ 1,000), M(1 ≤ M ≤ 10,000), X가 공백으로 구분되어 입력된다. 두 번째 줄부터 M+1번째 줄까지 i번째 도로의 시작점, 끝점, 그리고 이 도로를 지나는데 필요한 소요시간 Ti가 들어 www.acmicpc.net 문제 설명 방향성이 있고, 간선에 가중치가 있는 그래프에서 어떤 정점이 특정한 정점 X까지 왕복하는데 가장 거리가 먼지를 찾아내는 문제입니다. 다익스트라 알고리즘으로 해결할 수 있을 것 같습니다. 문제 분석 하지만 문제가 있습니다. 왔던 정점으로 다시 되돌아가야 하는데 방향성이 있기 때문에 되돌아가는 길은 왔던 길과 다릅니다. 이 문제를 해결하기 위해서 모든 정점에서..
문제 https://www.acmicpc.net/problem/10974 10974번: 모든 순열 N이 주어졌을 때, 1부터 N까지의 수로 이루어진 순열을 사전순으로 출력하는 프로그램을 작성하시오. www.acmicpc.net 코드 풀이 itertools 모듈을 사용하여 permutations 메소드를 선언하고 입력된N까지의 순열을 리스트에 저장한다. 순열을 출력할 때 map(str,t)을 다시 join으로 바꿔야 같은 형태로 프린트된다.
https://www.acmicpc.net/problem/13549 13549번: 숨바꼭질 3 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 www.acmicpc.net 문제 분석 수빈이가 동생을 찾는 가장 빠른 시간을 구하는 문제다. 수빈이는 1초에 한 칸씩 앞뒤로 걷거나, 0초에 현재 위치*2의 위치로 순간이동이 가능하다. 다익스트라 알고리즘을 사용하여 풀 수 있다. 코드 #include #include #include #include using namespace std; #define INF 987654321 int n, k..
https://www.acmicpc.net/problem/13907 13907번: 세금 첫 번째 줄에 세 정수 N (2 ≤ N ≤ 1,000), M (1 ≤ M ≤ 30,000), K (0 ≤ K ≤ 30,000)가 주어진다. 각각 도시의 수, 도로의 수, 세금 인상 횟수를 의미한다. 두 번째 줄에는 두 정수 S와 D (1 ≤ S, D ≤ N, S ≠ D www.acmicpc.net 문제분석 세금이 오를 때 마다 간선의 비용이 증가한다. 각각 오를 때 마다의 출발점에서 도착점까지의 최소비용을 출력하라. 코드 import java.io.*; import java.util.*; public class Main { static int n,m,k,s,d; static int[][] mindist; static ..
문제 https://www.acmicpc.net/problem/8979 8979번: 올림픽 입력의 첫 줄은 국가의 수 N(1 ≤ N ≤ 1,000)과 등수를 알고 싶은 국가 K(1 ≤ K ≤ N)가 빈칸을 사이에 두고 주어진다. 각 국가는 1부터 N 사이의 정수로 표현된다. 이후 N개의 각 줄에는 차례대로 각 www.acmicpc.net 코드 풀이 입력받은 국가와 매달의 수를 이중리스트에 넣은 다음 lambda로 금은동 순서대로 정렬한다. 정렬한 후에는 line[0]이 순서대로 나열되지 않으므로 등수를 알고싶은 국가 K의 line[0]을 index에 저장한 후 i+1을 출력한다
백준 7576 토마토 Intro Solution 방향을 지정한 리스트를 미리 선언하고, 입력받은 토마토의 위치를 큐를 만들어 집어넣는다. 너비 우선 탐색을 한다. 익지 않은 토마토를 토마토를 익힐 때마다 1을 더하며 그래프를 갱신한다. 그래프에서 가장 큰 값이 토마토를 모두 익히는데 필요한 최소 날짜이다. 익지 않은 토마토 즉 그래프에 0이 있을 경우 -1을 출력한다. Code from collections import deque import sys input = sys.stdin.readline def solve(): m, n = map(int, input().split()) farm = [[*map(int, input().split())] for _ in range(n)] queue = deque()..
https://www.acmicpc.net/problem/11655 11655번: ROT13 첫째 줄에 알파벳 대문자, 소문자, 공백, 숫자로만 이루어진 문자열 S가 주어진다. S의 길이는 100을 넘지 않는다. www.acmicpc.net 문제 분석 카이사르 암호 방식을 이용해 영어 알파벳을 13글자씩 뒤로 밀면 된다. 소스코드 s=list(input()) for i in range(len(s)): x=ord(s[i]) if 65
4963번: 섬의 개수 (acmicpc.net) 4963번: 섬의 개수 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스의 첫째 줄에는 지도의 너비 w와 높이 h가 주어진다. w와 h는 50보다 작거나 같은 양의 정수이다. 둘째 줄부터 h개 줄에는 지도 www.acmicpc.net 문제 해석 지도가 주어지면 총 섬의 개수를 출력하는 문제이다. 지도에서 서로 인접한 가로, 세로, 대각선의 Land들을 하나의 섬이라고 한다. 코드 문제 풀이 bfs를 이용하여 문제를 풀었다. 처음 v는 인접한 땅을 체크하기 위해 방향벡터를 list로 만들어주었다. 각 테스트케이스마다 while문을 돌면서 반복하며, w, h에 너비와 높이를 저장하고 만약 둘다 0이 입력됐다면 break하여 코드를 종료한다. ..
https://www.acmicpc.net/problem/12789 12789번: 도키도키 간식드리미 인하대학교 학생회에서는 중간, 기말고사 때마다 시험 공부에 지친 학우들을 위해 간식을 나눠주는 간식 드리미 행사를 실시한다. 승환이는 시험 기간이 될 때마다 간식을 받을 생각에 두근두 www.acmicpc.net 한 개의 리스트에 담겨있는 숫자를 순서대로 빼내야 하는 문제이다. 한 쪽으로밖에 뺄 수 없으므로, 다른 한개의 빈 리스트에 옮겨 담아가며 순서대로 빼야한다. 이러한 조건에서 주어진 순번대로 간식을 받을 수 있는지 없는지를 체크하는 문제이다. 최초의 리스트에서 숫자를 뺄 때는, 앞 쪽 인덱스부터 빼야하기 때문에, pop(0)를 사용했다. collections의 deque에서 제공하는 popleft..
KauKoala
'Koala - 7기' 카테고리의 글 목록 (2 Page)