본문 바로가기

728x90
반응형

# Coding

(78)
[백준 / 1476] 날짜 계산 - Python https://www.acmicpc.net/problem/1476 1476번: 날짜 계산 준규가 사는 나라는 우리가 사용하는 연도와 다른 방식을 이용한다. 준규가 사는 나라에서는 수 3개를 이용해서 연도를 나타낸다. 각각의 수는 지구, 태양, 그리고 달을 나타낸다. 지구를 나타 www.acmicpc.net E의 값을 이용해 가능한 날짜를 계산하면서 모든 수가 같아질 때 까지 반복한다. E, S, M = map(int, input().split()) count = 0 E -= 1 S -= 1 M -= 1 while True: year = 15*count+E if year % 28 == S: if year % 19 == M: break count += 1 print(count*15+E+1)
[백준 / 1504] 특정한 최단 경로 - Python https://www.acmicpc.net/problem/1504 1504번: 특정한 최단 경로 첫째 줄에 정점의 개수 N과 간선의 개수 E가 주어진다. (2 ≤ N ≤ 800, 0 ≤ E ≤ 200,000) 둘째 줄부터 E개의 줄에 걸쳐서 세 개의 정수 a, b, c가 주어지는데, a번 정점에서 b번 정점까지 양방향 길이 존 www.acmicpc.net 지나야 하는 두 점 v1과 v2을 거쳐서 1에서 N으로 가야 한다. 따라서 나올 수 있는 경로는 1 -> v1 -> v2 -> N 1 -> v2 -> v1 -> N 이 두가지이다. 이 둘을 비교하여 더 짧은 거리가 정답이다. 해당 문제는 다익스트라 알고리즘(Dijkstra Algorithm)을 선행해야 한다. 2021.03.18 - [# Coding/#..
[백준 / 1834] 나머지와 몫이 같은 수 - Python https://www.acmicpc.net/problem/1834 1834번: 나머지와 몫이 같은 수 N으로 나누었을 때 나머지와 몫이 같은 모든 자연수의 합을 구하는 프로그램을 작성하시오. 예를 들어 N=3일 때, 나머지와 몫이 모두 같은 자연수는 4와 8 두 개가 있으므로, 그 합은 12이다. www.acmicpc.net 나머지와 몫이 같으므로 M이라고 하면, 입력받은 수 N보다 나머지는 작아야 한다. 따라서 1
[백준 / 1547] 공 - Python https://www.acmicpc.net/problem/1547 1547번: 공 첫째 줄에 컵의 위치를 바꾼 횟수 M이 주어지며, M은 50보다 작거나 같은 자연수이다. 둘째 줄부터 M개의 줄에는 컵의 위치를 바꾼 방법 X와 Y가 주어지며, X번 컵과 Y번 컵의 위치를 서로 바꾸는 것 www.acmicpc.net ball = ['', 'o', 'x', 'x'] for _ in range(int(input())): x, y = map(int, input().split()) ball[x], ball[y] = ball[y], ball[x] print(ball.index('o')) 리스트 1번 index에 공 'o'를 넣는다. 0번 index에는 공란으로 둔다. x와 y를 바꾸기 위해서 입력을 받고, 리스트의..
[백준 / 1357] 뒤집힌 덧셈 - Python https://www.acmicpc.net/problem/1357 1357번: 뒤집힌 덧셈 어떤 수 X가 주어졌을 때, X의 모든 자리수가 역순이 된 수를 얻을 수 있다. Rev(X)를 X의 모든 자리수를 역순으로 만드는 함수라고 하자. 예를 들어, X=123일 때, Rev(X) = 321이다. 그리고, X=100일 때, Rev( www.acmicpc.net 파이썬은 슬라이싱으로 문자열을 뒤집을 수 있다. [::-1] 입력받은 두 수를 뒤집은 뒤, 두 수를 더한다. : int(x [::-1]+int(y [::-1]) 그 더한 수를 뒤집은 뒤 정수형으로 출력한다. : int(str(int(x [::-1]+int(y [::-1]))[::-1])) 다시 정수형으로 바꾸는 이유는 1000을 뒤집으면 1이 아닌 ..
[백준 / 1371] 가장 많은 글자 - Python https://www.acmicpc.net/problem/1371 1371번: 가장 많은 글자 첫째 줄부터 글의 문장이 주어진다. 글은 최대 5000글자로 구성되어 있고, 공백, 알파벳 소문자, 엔터로만 이루어져 있다. 그리고 적어도 하나의 알파벳이 있다. www.acmicpc.net 소문자의 개수를 세어 가장 많은 문자를 출력하면 된다. 만약 여러 문자인 경우 사전 순으로 출력하면 된다. 따라서 글을 입력받아 한글자씩 글자의 개수를 세어준다. 그다음 글자의 개수를 비교하여 가장 많이 나온 글자를 출력한다. import sys alphabet = {chr(i): 0 for i in range(97, 123)} for line in sys.stdin: for i in line: if i in alphabe..
[백준 / 1526] 가장 큰 금민수 - Python http://acmicpc.net/problem/1526 1526번: 가장 큰 금민수 첫째 줄에 N이 주어진다. N은 4보다 크거나 같고 1,000,000보다 작거나 같은 자연수이다. www.acmicpc.net 금민수는 7과 4로 이루어진 가장 큰 수이다. 따라서 입력받은 수와 같은 자릿수의 7로 이루어진 수가 가장 큰 수 일 것이다. 해당 수부터 차례로 4로 바꾸면서 입력받은 수보다 처음으로 작아지는 수가 제일 큰 수 일 것이다. 예를 들어 4자리의 수가 입력이 되면 7777부터 7774, 7747, 7744, 7477... 순서로 점점 작아지면서 입력 수보다 작은 처음 수를 탐색을 한다. n자릿수가 입력이 되면 총 2^n번 반복이 된다. 위의 경우 4자리 수이므로 총 16개의 은민수가 만들어진다. ..
[백준 / 1051] 숫자 정사각형 - Python https://www.acmicpc.net/problem/1051 1051번: 숫자 정사각형 N*M크기의 직사각형이 있다. 각 칸은 한 자리 숫자가 적혀 있다. 이 직사각형에서 꼭짓점에 쓰여 있는 수가 모두 같은 가장 큰 정사각형을 찾는 프로그램을 작성하시오. 이때, 정사각형은 행 또는 www.acmicpc.net 원하는 정사각형의 조건은 같은 행, 같은 열에 존재한다. 한 노드를 기준으로 같은 줄의 같은 숫자를 찾아서 해당 거리를 구하고, 그 거리만큼 떨어진 사각형의 위치에 같은 숫자가 존재하는지를 판단하면 된다. N, M = map(int, input().split()) square = [] for _ in range(N): square.append(list(map(int, input()))) N행 ..

728x90
반응형