본문 바로가기

구현

(72)
[Python] 7490번 0 만들기 https://www.acmicpc.net/problem/7490 7490번: 0 만들기 각 테스트 케이스에 대해 ASCII 순서에 따라 결과가 0이 되는 모든 수식을 출력한다. 각 테스트 케이스의 결과는 한 줄을 띄워 구분한다. www.acmicpc.net 22/11/23 파이썬에 특화된 문제로, 만약 다른 언어로 이 문제를 풀었다면 힘들게 풀었을 것이다. 문제 접근 방식: 기껏 해봤자 입력으로 받는 자연수의 범위가 $9$까지 이기 때문에 그냥 깡으로 구현하면 될 것이라고 생각했다. $N$개의 자연수가 있다면 그 사이에 공백이든, 더하기 기호든, 빼기 기호든지 간에 $N-1$개의 기호가 들어가므로 가능한 모든 조합들을 itertools모듈의 product함수를 사용하여 구현하였다. 만약 product함..
[Python] 16939번 2×2×2 큐브 https://www.acmicpc.net/problem/16939 16939번: 2×2×2 큐브 첫째 줄에 2×2×2 루빅스 큐브 각 면의 각 칸 색상이 주어진다. 색상은 1부터 6까지의 자연수로 나타내며, 각 자연수는 총 4번 등장한다. i번째 수가 의미하는 칸은 아래와 같다. www.acmicpc.net 22/11/10 전형적인 구현 문제로, 큐브의 움직임을 따라가며 차근차근 구현하면 맞을 수 있는 문제이다. 문제 접근 방식: 아래 그림을 보자. 2*2*2 큐브에서 나올 수 있는 모든 회전들을 기호로 표현한 것으로, 총 12가지가 있다. 나는 5678이 새겨진 면을 맨 윗면으로 고정시켜놓고, 저렇게 한 번 회전시키는 것을 각각의 함수로 구현하였다. 다시 말해, 총 12가지의 함수를 구현한 것이다. ..
[Python] 25915번 연세여 사랑한다 https://www.acmicpc.net/problem/25915 25915번: 연세여 사랑한다 훈규가 비밀번호를 모두 입력하기 위한 이동 거리의 최솟값을 출력한다. www.acmicpc.net 22/11/06 단순한 구현 문제로, 예제를 잘 보면 쉽게 해결할 수 있는 문제이다. 문제 접근 방식: 훈규가 비밀번호를 출력하기 위한 이동거리의 최솟값을 출력해야 한다. 근데 어차피 순서대로 입력해야 하므로, I에서 L로, L에서 O로, O에서 V로, V에서 E로... 그렇게 가는 이동거리는 고정되어있다. 때문에 처음 위치에만 관련이 있다. 예제에서는 처음 위치가 I일 때, 다시 말해 처음에 움직이지 않고 바로 출력해도 될 때의 경우의 이동거리를 줬으므로(84), 이를 이용해서, 입력받은 알파벳이 I에서 얼마..
[Python] 25591번 푸앙이와 종윤이 https://www.acmicpc.net/problem/25591 25591번: 푸앙이와 종윤이 베다수학 곱셈법을 쓰는 과정에서 구하는 $a$, $b$, $c$, $d$, $q$, $r$을 첫 줄에 공백으로 구분해서 출력한다. 둘째 줄에 곱셈 결과의 앞의 두 자릿수, 뒤의 두 자릿수를 공백으로 구분해서 출력한다. www.acmicpc.net 22/10/12 그냥 주어진 문제를 그대로 구현하면 되는 문제이다. 문제 접근 방식: 문제 잘 읽고 풀면 된다. 전형적인 문제 읽기가 힘든 문제. 아래는 내가 위의 접근 방식과 같이 작성한 파이썬 코드이다. 더보기를 누르면 확인할 수 있다. 더보기 # 25591번 푸앙이와 종윤이 m, n = map(int, input().split()) a = 100 - m b =..
[Python] 17114번 하이퍼 토마토 https://www.acmicpc.net/problem/17114 17114번: 하이퍼 토마토 첫 줄에는 문제의 설명에서 창고의 크기를 나타내는 자연수 m, n, o, p, q, r, s, t, u, v, w가 주어진다. 단, 1 ≤ mnopqrstuvw ≤ 106 이다. 둘째 줄부터는 창고에 저장된 토마토들의 정보가 주어진다. 창 www.acmicpc.net 22/10/11 기존 토마토 문제(7576번, 7569번)와 기본적인 접근 방법 자체는 똑같다. 하지만, 11차원으로 인해 생기는 시간 부족을 관리해야 되기 때문에 약간 코드가 다르게 적을 수밖에 없었다. 2022.09.20 - [백준 문제 풀이] - [Python] 7576번 토마토 [Python] 7576번 토마토 7576번: 토마토 (acm..
[Python] 1205번 등수 구하기 https://www.acmicpc.net/problem/1205 1205번: 등수 구하기 첫째 줄에 N, 태수의 새로운 점수, 그리고 P가 주어진다. P는 10보다 크거나 같고, 50보다 작거나 같은 정수, N은 0보다 크거나 같고, P보다 작거나 같은 정수이다. 그리고 모든 점수는 2,000,000,000보 www.acmicpc.net 22/10/10 단순 구현 문제로, 주어진 상황을 그대로 해석하여 문제를 구현하면 된다. 문제 접근 방식: 먼저 현재 랭킹 리스트에는 몇 명 있는지(N), 태수의 새로운 점수(new_score), 랭킹 리스트에 올라갈 수 있는 점수의 개수(P)가 주어진다. 먼저 경우의 수를 나눌 수 있다. 만약 현재 랭킹 리스트에 아무도 없는 상황이라면, 랭킹 리스트에 올라갈 수 있는..
[Python] 4375번 1 https://www.acmicpc.net/problem/4375 4375번: 1 2와 5로 나누어 떨어지지 않는 정수 n(1 ≤ n ≤ 10000)가 주어졌을 때, 1로만 이루어진 n의 배수를 찾는 프로그램을 작성하시오. www.acmicpc.net 22/10/08 처음에는 특별한 규칙이 있는 문제인 줄 알고 괜히 시간을 오래 썼었다. 알고 보니 그냥 단순한 브루트 포스라는 것을 알고 그냥 깡 구현하여 문제를 풀었다. 문제 접근 방식: 어떤 정수가 주어지면, 그에 맞춰서 가장 작은 1로만 구성된 그 정수의 배수의 자릿수를 출력하는 것이 우리의 목표이다. 때문에 파이썬의 큰 수 연산에 대한 장점을 살려서 10을 곱하고 1을 하는 연산을 반복하다 입력받은 N으로 나눠질 때, 그 자리 수를 출력하도록 단순 ..
[Python] 2556번 별 찍기 - 14 https://www.acmicpc.net/problem/2556 2556번: 별 찍기 - 14 지금까지 안 나온 별 찍기가 뭐가 있는지 생각해본 후, 별을 적절히 찍으세요. www.acmicpc.net 22/10/08 번외 문제다. 문제 접근 방식: 직각삼각형을 출력하면 된다. 아래는 내가 위의 접근 방식과 같이 작성한 파이썬 코드이다. 더보기를 누르면 확인할 수 있다. 더보기 n = int(input()) for i in range(n): print('*'*n)