[boj] 25044번: 에어컨
·
Problem Solving/Baekjoon
출처 : https://www.acmicpc.net/problem/25044 25044번: 에어컨 대부분의 DGIST 기초학부 학생들은 기숙사에서 생활하고 있습니다. 여름이 다가옴에 따라 자유롭게 온도를 설정할 수 있는 시원한 에어컨을 사용하게 될 예정입니다. 안타깝게도 에어컨은 매일 1 www.acmicpc.net 1. 문제 설명 대부분의 DGIST 기초학부 학생들은 기숙사에서 생활하고 있습니다. 여름이 다가옴에 따라 자유롭게 온도를 설정할 수 있는 시원한 에어컨을 사용하게 될 예정입니다. 안타깝게도 에어컨은 매일 15, 18, 21시 정각에 자동으로 꺼지게 설계되어 있습니다. 더군다나 에어컨의 내장 시계가 고장이 나서 세 번째로 꺼질 때마다 에어컨의 시계는 K분간 멈추게 됩니다. 편안한 낮잠을 위해 ..
[boj] 12927번: 배수 스위치
·
Problem Solving/Baekjoon
출처 : https://www.acmicpc.net/problem/12927 12927번: 배수 스위치 첫째 줄에 전구의 상태가 1번 전구부터 차례대로 주어진다. Y는 전구가 켜 있는 경우, N은 전구가 꺼져있는 경우이다. 전구의 개수는 1보다 크거나 같고 1,000보다 작거나 같은 자연수이다. www.acmicpc.net 1. 문제 설명 강호는 전구를 N개를 가지고 있다. 1번부터 N번까지 번호가 매겨져있고, 전구는 켜져있거나 꺼져있다. 전구의 개수만큼 스위치 N개를 가지며, 1번부터 N번까지 번호가 매겨져 있다. i번 스위치를 끄게 되면 i의 배수 번호를 가지는 전구의 상태를 모두 반전시킨다. 2. 접근 방식 해시맵을 사용하였다. (특별한 알고리즘은 없다.) 3. 주석 달기 (변수 설명, 각 줄마다 ..
[boj] 11399번: ATM
·
Problem Solving/Baekjoon
출처 : https://www.acmicpc.net/problem/11399 11399번: ATM 첫째 줄에 사람의 수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄에는 각 사람이 돈을 인출하는데 걸리는 시간 Pi가 주어진다. (1 ≤ Pi ≤ 1,000) www.acmicpc.net 1. 문제 설명 사람들이 줄을 서는 순서에 따라서, 돈을 인출하는데 필요한 시간의 합이 달라지게 된다. 예를 들어, 총 5명이 있고, P1 = 3, P2 = 1, P3 = 4, P4 = 3, P5 = 2 인 경우를 생각해보자. [1, 2, 3, 4, 5] 순서로 줄을 선다면, 1번 사람은 3분만에 돈을 뽑을 수 있다. 2번 사람은 1번 사람이 돈을 뽑을 때 까지 기다려야 하기 때문에, 3+1 = 4분이 걸리게 된다. ..
[boj] 1026번: 보물
·
Problem Solving/Baekjoon
출처 : https://www.acmicpc.net/problem/1026 1026번: 보물 첫째 줄에 N이 주어진다. 둘째 줄에는 A에 있는 N개의 수가 순서대로 주어지고, 셋째 줄에는 B에 있는 수가 순서대로 주어진다. N은 50보다 작거나 같은 자연수이고, A와 B의 각 원소는 100보다 작거 www.acmicpc.net 1. 문제 설명 길이가 N인 정수 배열 A와 B가 있고, 다음과 같이 함수 S가 정의된다. S = A[0] x B[0] + .... + A[N-1] x B[N-1] S의 값을 가장 작게 만들기 위해 A의 수를 재배열하자. 단, B에 있는 수는 재배열하면 안된다. S의 최솟값을 출력하라. 2. 접근 방식 사실 문제에서 B에 있는 수를 재배열하지 말라고 했지만 출력은 S의 최솟값을 출..
[boj] 2630번: 색종이 만들기
·
Problem Solving/Baekjoon
출처 : https://www.acmicpc.net/problem/2630 2630번: 색종이 만들기 첫째 줄에는 전체 종이의 한 변의 길이 N이 주어져 있다. N은 2, 4, 8, 16, 32, 64, 128 중 하나이다. 색종이의 각 가로줄의 정사각형칸들의 색이 윗줄부터 차례로 둘째 줄부터 마지막 줄까지 주어진다. www.acmicpc.net 1. 문제 설명 종이의 크기가 N x N인 정사각형에서 각 칸에 1(파란색)과 0(하얀색)으로 칠해져있을 때 일정한 규칙에 따라 잘라서 자른 모든 면이 모두 같은 색이면 그 칸의 수를 반환하고, 모두 같은 색이 아니라면 똑같은 크기의 N/2 x N/2색종이로 조건을 만족할 때 까지 반복한다. 2. 접근 방식 3. 주석 달기 (변수 설명, 각 줄마다 문장으로 설명..
[LeetCode] 835.Image Overlap
·
Problem Solving/LeetCode
출처 : https://leetcode.com/problems/image-overlap/ Image Overlap - LeetCode Image Overlap - You are given two images, img1 and img2, represented as binary, square matrices of size n x n. A binary matrix has only 0s and 1s as values. We translate one image however we choose by sliding all the 1 bits left, right, up, and/or down any leetcode.com 1. 문제 설명 주어진 img1을 상, 하, 좌, 우로 움직여서 img2를 만들 때 가장 많이 ..
[boj] 1655번: 가운데를 말해요
·
Problem Solving/Baekjoon
출처 : https://www.acmicpc.net/problem/1655 1655번: 가운데를 말해요 첫째 줄에는 백준이가 외치는 정수의 개수 N이 주어진다. N은 1보다 크거나 같고, 100,000보다 작거나 같은 자연수이다. 그 다음 N줄에 걸쳐서 백준이가 외치는 정수가 차례대로 주어진다. 정수는 -1 www.acmicpc.net 1. 문제 설명 백준이가 정수를 하나씩 외칠때마다 동생은 지금까지 백준이가 말한 수 중에서 중간 값을 말해야 한다. 만약 외친 수가 짝수개라면 중간에 있는 두 수 중에서 작은 수를 말한다. 1을 외치면 지금까지 `백준이가 외친 수 = [1]이므로 1 5를 외치면 `백준이가 외친 수 = [1,5], 두 수중 작은 수는 1 2를 외치면 `백준이가 외친 수 = [1,5,2] 중..
[LeetCode] 433. Minimum Genetic Mutation
·
Problem Solving/LeetCode
출처 : https://leetcode.com/problems/minimum-genetic-mutation/ Minimum Genetic Mutation - LeetCode Minimum Genetic Mutation - A gene string can be represented by an 8-character long string, with choices from 'A', 'C', 'G', and 'T'. Suppose we need to investigate a mutation from a gene string startGene to a gene string endGene where one mutation is defin leetcode.com 1. 문제 설명 유전자 문자열은 A, C, G, T로 이..
[boj] 14620번: 꽃길
·
Problem Solving/Baekjoon
출처 : https://www.acmicpc.net/problem/14620 14620번: 꽃길 2017년 4월 5일 식목일을 맞이한 진아는 나무를 심는 대신 하이테크관 앞 화단에 꽃을 심어 등교할 때 마다 꽃길을 걷고 싶었다. 진아가 가진 꽃의 씨앗은 꽃을 심고나면 정확히 1년후에 꽃이 피므 www.acmicpc.net 1. 문제 설명 하이테크 앞 화단의 대여 가격은 격자의 한 점마다 다르기 때문에 진아는 서로 다른 세 씨앗을 모두 꽃이 피게하면서 가장 싼 가격에 화단을 대여하고 싶다. 단 화단을 대여할 때는 꽃잎이 핀 모양을 기준으로 대여를 해야하므로 꽃 하나당 5평의 땅을 대여해야만 한다. 돈이 많지 않은 진아를 위하여 진아가 꽃을 심기 위해 필요한 최소비용을 구해주자! 라는 문제이다. 요약을 해보..
[boj] 22114번: 창영이와 점프
·
Problem Solving/Baekjoon
출처 : https://www.acmicpc.net/problem/22114 22114번: 창영이와 점프 창영이는 버스에서 내린 뒤 회사로 걸어가고 있다. 창영이가 걸어가는 길은 대부분 회색 보도블럭으로 포장되어 있는데, 가끔씩 빨간 보도블럭이 놓여있을 때가 있다. 창영이는 어린 시절 빨간 www.acmicpc.net 1. 문제 설명 N개의 블록이 존재한다. 각 블록은 창영이와 가까운 순서대로 1,2,3...,N-1,N번 블록이라고 한다. i번 블록과 i+1번 블록은 길이 Li만큼 떨어져 있는데 한 걸음에 길이 K만큼 이동할 수 있다. (Li K and 최대 한 번의 이동도 이미 사용한 경우) 기록은 끝난다. (뒤로 돌아가서 다시 밟았던 블록을 밟는 경우는 없다고 가정) 최적의 시작점을 찾아서 최대 몇 ..
[boj] 5619번: 세 번째
·
Problem Solving/Baekjoon
출처 : https://www.acmicpc.net/problem/5619 5619번: 세 번째 서로 다른 자연수 n개 a1, a2, ..., an이 주어진다. 이때, a1, ... an에서 2개를 선택해서 붙여서 새로운 수를 만들 수 있다. 이때, 세 번째로 작은 수를 구하는 프로그램을 작성하시오. 예를 들어, 3과 4 www.acmicpc.net 1. 문제 설명 서로 다른 자연수 n개 a1, a2 ... an이 주어진다. 주어진 자연수 중에서 2개를 선택해 이어 붙여서 새로운 수를 만들 수 있다. 이때, 세 번째로 작은 수를 구하라. ex) 3과 4를 합치면 7이 아니라 34 또는 43이 된다. a1 =1, a4 = 11을 합쳐서 만든 111의 경우에 a1a4와 a4a1은 다른 수이다. 2. 접근 방..
[LeetCode] 290. Word Pattern
·
Problem Solving/LeetCode
출처 : https://leetcode.com/problems/word-pattern/ bool: s = list(s.split()) # 문자열 s를 list형태로 바꾼다. dic=defaultdict(str) # key값이 str형태인 딕셔너리를 만든다. if len(pattern) != len(s) : # 중복을 제거하지 않은 상태의 각 문자의 길이가 다르다면 return False # False if len(set(pattern)) != len(set(s)) : # 중복을 제거한 후의 각 문자의 길이가 다르다면 return False # False for i in range(len(pattern)) : if pattern[i] in dic and s[i] != dic[pattern[i]] : # d..