[Python] 백준/BOJ 20207번: 달력 (Gold 5)
·
Algorithm/백준 (BOJ)
💻 Problem문제 보러 가기 수현이는 일 년의 날짜가 1일부터 365일로 표시되어 있는 달력을 가지고 있다. 수현이는 너무나도 계획적인 사람이라 올해 일정을 모두 계획해서 달력에 표시해 놨다. 여름이 거의 끝나가자 장마가 시작되었고, 습기로 인해 달력에 표시한 일정이 지워지려고 한다. 지워지는 것을 막고자 수현이는 일정이 있는 곳에만 코팅지를 달력에 붙이려고 한다. 하지만 너무 귀찮았던 나머지, 다음과 같은 규칙을 따르기로 한다. 연속된 두 일자에 각각 일정이 1개 이상 있다면 이를 일정이 연속되었다고 표현한다. 연속된 모든 일정은 하나의 직사각형에 포함되어야 한다. 연속된 일정을 모두 감싸는 가장 작은 직사각형의 크기만큼 코팅지를 오린다. 달력은 다음과 같은 규칙을 따른다. 일정은 시작날짜와..
[Python] 백준/BOJ 17124번: 두 개의 배열 (Silver 3)
·
Algorithm/백준 (BOJ)
💻 Problem문제 보러 가기 정수 배열 A와 B가 있다. A는 총 n개의 서로 다른 양의 정수를 포함하고 B는 총 m개의 서로 다른 양의 정수를 포함한다. A, B를 이용해서 길이가 n인 새로운 배열 C를 만들어보자. C[i] 는 배열 B에 있는 값 중 A[i] 에 가장 가까운 값 (절댓값 차이가 가장 작은 값)으로 정의된다. 만약 이 조건을 만족하는 값들이 여럿 있는 경우, 그 중 가장 크기가 작은 값으로 정의된다.예를 들어 A = [20, 5, 14, 9] 그리고 B = [16, 8, 12] 라고 해보자. C[1] = 16 이다 - 왜냐하면 B[1] = 16이 A[1] = 20에 가장 가깝기 때문이다. C[2] = 8 이다 - 왜냐하면 B[2] = 8이 A[2] = 5에 가장 가깝기 때문이다...
[Python] 백준/BOJ 5376번: 소수를 분수로 (Silver 1)
·
Algorithm/백준 (BOJ)
💻 Problem문제 보러 가기 유리수 분수를 소수로 나타내면, 소수점 아래 자리가 유한 개인 경우(1/8 = 0.125)와 어떤 자리에서부터 일정한 숫자가 한없이 되풀이되는 경우(1/11 = 0.090909...)가 있다.소수를 입력받은 뒤, 분수로 나타내는 프로그램을 작성하시오. 예제 입력 1 30.50.(3)0.6(142857)예제 출력 1 1/21/343/70 💡 Approach순환소수를 분수로 나타내는 문제이다.순환소수를 분수로 변환하는 법을 노트에 정리해 봤다. 이를 바탕으로 구현하면 된다.입력을 슬라이싱해서 소수 뒷부분만 살펴보도록 했다. 주어진 소수가 유한소수일 경우, 분자는 소수 뒷부분 그대로이고 분모는 10^(소수 뒷부분 길이)가 된다. 주어진 소수가 무한소수(순환소수)일 경우, 소..
[Python] 백준/BOJ 18234번: 당근 훔쳐 먹기 (Gold 3)
·
Algorithm/백준 (BOJ)
💻 Problem문제 보러 가기 꽉꽉나라의 농부 오리는 아무것도 심어져 있지 않은 텃밭을 하나 가지고 있다. 오리는 그 텃밭에 N종류의 당근을 하나씩 심고 T일 동안 재배할 예정이다.당근 i(1 ≤ i ≤ N)는 처음에는 wi의 맛을 가지고 있고, 각 당근 i에 사용할 pi만큼 맛을 증가시켜 주는 영양제가 당근 종류별로 T개씩 준비되어 있다. 오리는 당근이 본래의 맛보다 훨씬 맛있어지기를 바라기 때문에 pi는 항상 wi이상의 값을 가지도록 준비했다. 잠이 많은 오리는 매일 오전에만 텃밭에 나와 당근들을 관리한다. 오리는 각 당근 i에 대해 당근 i가 자리에 없다면 당근 i를 심고, 그렇지 않다면 당근 i에 영양제를 하나 준다.꽉꽉나라에 놀러 온 토끼는 오리가 오전에만 당근을 관리한다는 사실을 알고 오리..
[Python] 코드트리: 민트 초코 우유 (L12)
·
Algorithm/코드트리
💻 Problem문제 보러 가기 삼성 SW 역량 테스트 기출 - 2025 상반기 오전 1번 문제 💡 Approach1. 아침 (morning)모든 학생이 신앙심 1 얻기 but, 점심에 그룹원들이 각자 신앙심을 1씩 대표자에게 넘길 예정이기 때문에 이를 상쇄시킬 수 있다.아침에 신앙심을 얻는 것(+1)과 점심에 대표자에게 신앙심을 넘기는 것(-1)이 상쇄돼서 아무 행동도 하지 않는다. 대신 점심에 대표자에게만 신앙심을 주면 된다. 2. 점심 (afternoon)신봉 음식이 같으면서 연결되어 있는(인접한) 학생들끼리 그룹을 형성한다.bfs로 학생들끼리 연결되어 있는지 확인한다. 그룹을 형성할 때(bfs) 대표자도 함께 찾는다.그룹원들 중 신앙심이 가장 크면서 행 번호, 열 번호가 더 작은 학생이 대표자..
[Python] 백준/BOJ 2597번: 줄자접기 (Silver 3)
·
Algorithm/백준 (BOJ)
💻 Problem문제 보러 가기 준성이는 1㎝ 간격으로 눈금이 매겨져 있는 줄자를 가지고 있다. 그 줄자에 있는 서로 다른 눈금 6개에 한 눈금에 하나씩 점이 찍혀 있는데, 빨간 점, 파란 점, 노란 점이 각각 두 개씩 있다.준성이는 먼저 빨간 점이 만나도록 줄자를 접었다. 그런 후 두 파란 점이 만나도록 줄자를 접고, 또다시 두 노란 점이 만나도록 줄자를 접었다. 줄자는 투명하여 접더라도 점들을 잘 볼 수 있다. 어떤 색깔의 두 점이 만나도록 줄자를 접었을 때, 그다음에 접으려는 색깔의 두 점이 이미 만나고 있으면, 그 두 점에 대해서는 줄자를 접지 않는다.예를 들어 길이 10㎝ 인 줄자에 아래 그림과 같이 2㎝ 와 7㎝ 위에에 두 빨간 점이 찍혀 있고, 5㎝ 와 4㎝위치에 파란 점이, 10㎝ 와 3..
[Python] 백준/BOJ 5545번: 최고의 피자 (Silver 3)
·
Algorithm/백준 (BOJ)
💻 Problem문제 보러 가기 상근이는 근처 피자 가게에서 매일 저녁으로 피자를 배달해 먹는다. 주머니 사정이 얇아진 상근이는 이번 달부터는 "최고의 피자"를 구매하려고 한다. 최고의 피자란, 피자 가게에서 주문할 수 있는 피자 중 1원당 열량이 가장 높은 피자를 말한다. 최고의 피자는 여러 종류가 있을 수도 있다.이 피자 가게는 토핑 N개에서 여러 종류를 선택해서 주문할 수 있다. 같은 종류의 토핑을 2개 이상 선택할 수는 없다. 또, 토핑을 전혀 선택하지 않을 수도 있다.선택한 토핑은 도우 위에 올라간다. 도우의 가격은 A원이고, 토핑의 가격은 모두 B원이다. 피자의 가격은 도우와 토핑의 가격의 합계가 된다. 즉, 토핑을 k종류 (0 ≤ k ≤ N) 선택했다면, 피자의 가격은 A + B*k원이 된..
[Python] 백준/BOJ 17291번: 새끼치기 (Silver 2)
·
Algorithm/백준 (BOJ)
💻 Problem문제 보러 가기 실험실에서 새로운 종의 벌레 한 마리가 탄생하였다. 벌레는 스스로 분열하며, 분열하면 자기 자신과 같은 벌레를 한 마리 만들어 내게 된다. 벌레가 분열하는 규칙은 다음과 같다.벌레는 기준연도 1년 2월에 1마리가 탄생한다.벌레는 매년 1월이 되면 분열한다. 분열 시 본래의 개체는 그대로, 새로운 개체가 하나 탄생하는 것으로 본다.홀수 연도에 탄생한 개체는 3번 분열 시, 짝수 연도에 탄생한 개체는 4번 분열 시 사망한다.예를 들어, 기준년도 1년 2월에 존재하던 벌레는, 2년 1월, 3년 1월, 4년 1월에 분열하고 사망하여 4년 말에는 존재하지 않게 된다. 이때, N 년 말에 존재하는 벌레의 수를 구하여라. 💡 Approach먼가.. 문제를 읽어 보니 DP겠다 싶어서..