[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..