[백준 1969번] 파이썬 - DNA
백준 1969 - DNA 시간 제한 2초, 메모리 제한 128MB # 조건 DNA란 어떤 유전물질을 구성하는 분자이다. 이 DNA는 서로 다른 4가지의 뉴클레오티드로 이루어져 있다(Adenine, Thymine, Guanine, Cytosine). 우리는 어떤 DNA의 물질을 표현할 때, 이 DNA를 이루는 뉴클레오티드의 첫글자를 따서 표현한다. 만약에 Thymine-Adenine-Adenine-Cytosine-Thymine-Guanine-Cytosine-Cytosine-Guanine-Adenine-Thymine로 이루어진 DNA가 있다고 하면, “TAACTGCCGAT”로 표현할 수 있다. 그리고 Hamming Distance란 길이가 같은 두 DNA가 있을 때, 각 위치의 뉴클오티드 문자가 다른 것의 ..
2023.11.19
[백준 16960번] 파이썬 - 스위치와 램프
백준 16960 - 스위치와 램프 시간 제한 2초, 메모리 제한 512MB # 조건 상도는 N개의 스위치와 M개의 램프를 갖고 있다. 스위치는 램프의 전원을 켤 수 있다. 스위치와 연결된 램프의 개수는 0개 이상이다. 가장 처음에 램프는 모두 꺼져 있다. 스위치를 누르면 램프의 전원이 켜진다. 스위치를 이용해서 램프의 전원을 끌 수는 없다. 예를 들어, 한 램프에 두 스위치가 연결되어 있는 경우에 한 스위치를 누르거나, 두 스위치를 모두 누르면 램프는 켜져 있는 상태가 된다. N개의 스위치를 모두 누르면 모든 램프가 켜진다. 상도는 N-1개의 스위치를 눌러도 모든 램프가 켜지는지 궁금해졌다. 스위치와 램프의 연결 상태가 입력으로 주어진다. N-1개의 스위치를 눌러서 모든 램프를 켤 수 있는지 알아보자. ..
2023.11.18
[백준 2885번] 파이썬 - 초콜릿 식사
백준 2885 - 초콜릿 식사 시간 제한 1초, 메모리 제한 128MB # 조건 학교 근처 편의점에 새 초콜릿이 들어왔다. 이 초콜릿은 막대 모양이고, 각 막대는 정사각형 N개로 이루어져 있다. 초콜릿의 크기(정사각형의 개수)는 항상 2의 제곱 형태이다. 즉, 1, 2, 4, 8, 16, ...개의 정사각형으로 이루어져 있다. 상근이는 점심식사로 초콜릿을 먹는다. 이때, 적어도 K개 정사각형을 먹어야 남은 수업을 졸지 않고 버틸 수 있다. 상근이의 친구 선영이도 초콜릿을 좋아한다. 선영이는 초콜릿은 돈을 주고 사기 아깝다고 생각하기 때문에, 상근이가 주는 초콜릿만 먹는다. 상근이는 막대 초콜릿를 하나 산 다음에, 정확하게 K개 정사각형이 되도록 초콜릿을 쪼갠다. K개는 자신이 먹고 남는 것은 선영이에게 ..
2023.11.17
[백준 10844번] 파이썬 - 쉬운 계단 수
백준 10844 - 쉬운 계단 수 시간 제한 1초, 메모리 제한 256MB # 조건 45656이란 수를 보자. 이 수는 인접한 모든 자리의 차이가 1이다. 이런 수를 계단 수라고 한다. N이 주어질 때, 길이가 N인 계단 수가 총 몇 개 있는지 구해보자. 0으로 시작하는 수는 계단수가 아니다. 입력 첫째 줄에 N이 주어진다. N은 1보다 크거나 같고, 100보다 작거나 같은 자연수이다. 출력 첫째 줄에 정답을 1,000,000,000으로 나눈 나머지를 출력한다. # 접근 방법 2차원 리스트를 활용한 DP로 풀어주었다. 문제의 핵심은 제일 뒤의 숫자가 어떤 숫자인지에 따라 DP의 값을 누적해나가는 것이다. 1자리 수의 경우 0을 제외한 1~9에 1을 기입해준다. 2자리 수의 경우 뒷 자리가 0인 경우 10..
2023.11.13
[백준 2665번] 파이썬 - 미로 만들기
백준 2665 - 미로만들기시간 제한 1초, 메모리 제한 128MB# 조건n×n 바둑판 모양으로 총 n2개의 방이 있다.일부분은 검은 방이고 나머지는 모두 흰 방이다.검은 방은 사면이 벽으로 싸여 있어 들어갈 수 없다.서로 붙어 있는 두 개의 흰 방 사이에는 문이 있어서 지나다닐 수 있다.윗줄 맨 왼쪽 방은 시작방으로서 항상 흰 방이고, 아랫줄 맨 오른쪽 방은 끝방으로서 역시 흰 방이다.시작방에서 출발하여 길을 찾아서 끝방으로 가는 것이 목적인데, 아래 그림의 경우에는 시작방에서 끝 방으로 갈 수가 없다.부득이 검은 방 몇 개를 흰 방으로 바꾸어야 하는데 되도록 적은 수의 방의 색을 바꾸고 싶다.아래 그림은 n=8인 경우의 한 예이다.위 그림에서는 두 개의 검은 방(예를 들어 (4,4)의 방과 (7,8)..
2023.11.12
[백준 5883번] 파이썬 - 아이폰 9S
백준 5883 - 아이폰 9S 시간 제한 1초, 메모리 제한 128MB # 조건 오늘은 애플의 아이폰 9S가 출시되는 날이다. N(1 ≤ N ≤ 1000)명의 사람들은 새 아이폰을 누구보다 먼저 구매하기 위해서 애플 스토어 앞에 한 줄로 서있다. 아이폰 9S는 구매자가 용량을 마음대로 정할 수 있다. 즉, 지금까지 아이폰은 16/32/64GB와 같이 용량의 크기가 미리 정해져 있었다. 하지만, 9S는 자신이 원하는 용량의 크기 B(i)를 점원에게 말하면, 정확하게 그 용량을 가진 아이폰 9S를 그 자리에서 만들어 구매하는 방식이다. 애플 스토어의 점원 상근이는 같은 용량을 원하는 사람들이 연속되어 있으면, 더 보기 좋을 것이라고 생각한다. 따라서, 특정 사람을 고르고, 그 사람이 원하는 용량을 원하는 사..
2023.11.07
[백준 1939번] 파이썬 - 중량제한
백준 1939 - 중량제한 시간 제한 1초, 메모리 제한 128MB # 조건 N(2 ≤ N ≤ 10,000)개의 섬으로 이루어진 나라가 있다. 이들 중 몇 개의 섬 사이에는 다리가 설치되어 있어서 차들이 다닐 수 있다. 영식 중공업에서는 두 개의 섬에 공장을 세워 두고 물품을 생산하는 일을 하고 있다. 물품을 생산하다 보면 공장에서 다른 공장으로 생산 중이던 물품을 수송해야 할 일이 생기곤 한다. 그런데 각각의 다리마다 중량제한이 있기 때문에 무턱대고 물품을 옮길 순 없다. 만약 중량제한을 초과하는 양의 물품이 다리를 지나게 되면 다리가 무너지게 된다. 한 번의 이동에서 옮길 수 있는 물품들의 중량의 최댓값을 구하는 프로그램을 작성하시오. 입력 첫째 줄에 N, M(1 ≤ M ≤ 100,000)이 주어진다..
2023.10.28
[백준 1890번] 파이썬 - 점프
백준 1890 - 점프 시간 제한 1초, 메모리 제한 128MB # 조건 N×N 게임판에 수가 적혀져 있다. 이 게임의 목표는 가장 왼쪽 위 칸에서 가장 오른쪽 아래 칸으로 규칙에 맞게 점프를 해서 가는 것이다. 각 칸에 적혀있는 수는 현재 칸에서 갈 수 있는 거리를 의미한다. 반드시 오른쪽이나 아래쪽으로만 이동해야 한다. 0은 더 이상 진행을 막는 종착점이며, 항상 현재 칸에 적혀있는 수만큼 오른쪽이나 아래로 가야 한다. 한 번 점프를 할 때, 방향을 바꾸면 안 된다. 즉, 한 칸에서 오른쪽으로 점프를 하거나, 아래로 점프를 하는 두 경우만 존재한다. 가장 왼쪽 위 칸에서 가장 오른쪽 아래 칸으로 규칙에 맞게 이동할 수 있는 경로의 개수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 게임 판의 크기 ..
2023.10.28
[백준 19949번] 파이썬 - 영재의 시험
백준 19949 - 영재의 시험 시간 제한 1초, 메모리 제한 512MB # 조건 컴퓨터공학과 학생인 영재는 이번 학기에 알고리즘 수업을 수강한다. 평소에 자신의 실력을 맹신한 영재는 시험 전날까지 공부를 하지 않았다. 당연하게도 문제를 하나도 풀지 못하였지만 다행히도 문제가 5지 선다의 객관식 10문제였다. 찍기에도 자신 있던 영재는 3개의 연속된 문제의 답은 같지 않게 한다는 자신의 비법을 이용하여 모든 문제를 찍었다. 이때 영재의 점수가 5점 이상일 경우의 수를 구하여라. 문제의 점수는 1문제당 1점씩이다. 입력 시험의 정답이 첫 줄에 주어진다. 출력 영재의 점수가 5점 이상일 경우의 수를 출력하여라. # 접근 방법 product - 중복순열을 이용하여 모든 조건을 탐색해주어도 되지만 시간이 상당히..
2023.10.25