[ CodeUp ] 코드업으로 꾸준히 PS 연습하기 4일차 ( 1033 ~ 1042 )
·
-- 예전 기록/CodeUp
1033, 1034, 1035, 1036, 1037 데이터 출력 형식 지정에 사용하는 서식문자를 연습할 수 있다. (자료형, 진법 변환) 1038, 1039, 1040, 1041, 1042 산술연산을 연습할 수 있다.
[ BOJ ] 12796 : 나의 행렬곱셈 답사기 ( GOLD 5 ) / Python
·
-- 예전 기록/BOJ
문제 계산은 사람에게나 컴퓨터에게나 상당히 번거로운 일인 것 같다. 특히 n개의 행렬 M1,M2,⋯,Mn의 곱, 즉 M1M2⋯Mn같은 것은 정말이지 계산하기 귀찮다. 행렬과 그 곱셈이 익숙하지 않은 사람들을 위해 설명을 해 보자면, 먼저 행렬은 여러 수나 기호, 문자, 수식 같은 것을 직사각형 모양으로 적절히 배열한 후 이를 괄호로 묶은 것을 말한다. 편의상 이 문제에서는 행렬에 정수만 배열한다고 가정한다. 예를 들어 아래와 같은 것이 행렬의 한 예이다. 행렬에 배열된 수를 성분이라고 한다. 행렬의 가로줄은 행이라고 부르며, 위에서부터 차례로 제1행, 제2행, 제3행, … 식으로 이름을 붙인다. 또한 행렬의 세로줄은 열이라고 부르며, 왼쪽에서부터 차례로 제1열, 제2열, 제3열, … 식으로 이름을 붙인다..
[ CodeUp ] 코드업으로 꾸준히 PS 연습하기 3일차 ( 1023 ~ 1032 )
·
-- 예전 기록/CodeUp
1023, 1024, 1025, 1026, 1027 형식을 지정하여 입력받은 뒤 문제에서 원하는 출력을 하면 된다. 1028, 1029, 1030, 1031, 1032 데이터 출력 형식 지정에 사용하는 서식문자를 연습할 수 있다. (자료형, 진법 변환)
[ AtCoder ] AtCoder Beginner Contest 334 Upsolving
·
-- 예전 기록/UpSolving
A - Christmas Present https://atcoder.jp/contests/abc334/tasks/abc334_a A - Christmas Present AtCoder is a programming contest site for anyone from beginners to experts. We hold weekly programming contests online. atcoder.jp B가 크면 Bat, G가 크면 Glove 를 출력한다. ( B와 G는 같지 않다. ) b, g = map(int, input().rstrip().split()) print('Bat' if b > g else 'Glove') 예상 티어 : Bronze 5 B - Christmas Trees https://atc..
[ CodeUp ] 코드업으로 꾸준히 PS 연습하기 2일차 ( 1012 ~ 1022 )
·
-- 예전 기록/CodeUp
1012, 1013, 1014, 1017 단순 입출력 문제이다. 1015 %.2f 서식문자 형식을 이용해 소수점을 조절하여 출력할 수 있는 문제이다. 1018, 1019, 1020 주어진 입력 형식대로 입력받는 것을 연습할 수 있는 문제이다. 1021, 1022 char 문자열 배열을 이용하여 단어와 문장을 입력받는 것을 연습할 수 있는 문제이다.
[ CodeUp ] 코드업으로 꾸준히 PS 연습하기 1일차 ( 1001 ~ 1011 )
·
-- 예전 기록/CodeUp
1001, 1002, 1003 기본 출력 문제이다. 1004, 1005, 1006, 1007 Escape sequence 를 연습할 수 있는 문제이다. \' \" \\ %% 를 통해 특정 기호를 출력하는 문제이다. 1008 해당하는 특수문자를 직접 찾아서 유니코드로 출력하는 문제이다. 유니코드 특수문자를 출력하는 방법을 연습할 수 있는 문제이다. 1010, 1011 기본 입출력 문제이다.
[ BOJ ] 1655 : 가운데를 말해요 ( GOLD 2 ) / Python
·
-- 예전 기록/BOJ
문제 백준이는 동생에게 "가운데를 말해요" 게임을 가르쳐주고 있다. 백준이가 정수를 하나씩 외칠때마다 동생은 지금까지 백준이가 말한 수 중에서 중간값을 말해야 한다. 만약, 그동안 백준이가 외친 수의 개수가 짝수개라면 중간에 있는 두 수 중에서 작은 수를 말해야 한다. 예를 들어 백준이가 동생에게 1, 5, 2, 10, -99, 7, 5를 순서대로 외쳤다고 하면, 동생은 1, 1, 2, 2, 2, 2, 5를 차례대로 말해야 한다. 백준이가 외치는 수가 주어졌을 때, 동생이 말해야 하는 수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에는 백준이가 외치는 정수의 개수 N이 주어진다. N은 1보다 크거나 같고, 100,000보다 작거나 같은 자연수이다. 그 다음 N줄에 걸쳐서 백준이가 외치는 정수가 차례대로..
[ BOJ ] 17144 : 미세먼지 안녕! ( GOLD 4 ) / Python
·
-- 예전 기록/BOJ
문제 미세먼지를 제거하기 위해 구사과는 공기청정기를 설치하려고 한다. 공기청정기의 성능을 테스트하기 위해 구사과는 집을 크기가 R×C인 격자판으로 나타냈고, 1×1 크기의 칸으로 나눴다. 구사과는 뛰어난 코딩 실력을 이용해 각 칸 (r, c)에 있는 미세먼지의 양을 실시간으로 모니터링하는 시스템을 개발했다. (r, c)는 r행 c열을 의미한다. 공기청정기는 항상 1번 열에 설치되어 있고, 크기는 두 행을 차지한다. 공기청정기가 설치되어 있지 않은 칸에는 미세먼지가 있고, (r, c)에 있는 미세먼지의 양은 Ar,c이다. 1초 동안 아래 적힌 일이 순서대로 일어난다. 미세먼지가 확산된다. 확산은 미세먼지가 있는 모든 칸에서 동시에 일어난다. (r, c)에 있는 미세먼지는 인접한 네 방향으로 확산된다. 인접..
[ BOJ ] 2225 : 합분해 ( GOLD 5 ) / Python
·
-- 예전 기록/BOJ
문제 0부터 N까지의 정수 K개를 더해서 그 합이 N이 되는 경우의 수를 구하는 프로그램을 작성하시오. 덧셈의 순서가 바뀐 경우는 다른 경우로 센다(1+2와 2+1은 서로 다른 경우). 또한 한 개의 수를 여러 번 쓸 수도 있다. 입력 첫째 줄에 두 정수 N(1 ≤ N ≤ 200), K(1 ≤ K ≤ 200)가 주어진다. 출력 첫째 줄에 답을 1,000,000,000으로 나눈 나머지를 출력한다. 풀이 과정 DP 테이블을 이용하여, DP[i][j] 는 숫자 i 를 만들기 위해 j 개의 정수를 더하였을 때 만들 수 있는 경우의 수로 정의하였다. 숫자 i를 j개로 만드는 경우의 수는, 숫자 0을 j - 1개로 만드는 경우의 수 + 숫자 1을 j - 1개로 만드는 경우의 수 + 숫자 2를 j - 1개로 만드는 ..
[ BOJ ] 12100 : 2048 (Easy) ( GOLD 2 ) / Python
·
-- 예전 기록/BOJ
문제 2048 게임은 4×4 크기의 보드에서 혼자 즐기는 재미있는 게임이다. 이 링크를 누르면 게임을 해볼 수 있다. 이 게임에서 한 번의 이동은 보드 위에 있는 전체 블록을 상하좌우 네 방향 중 하나로 이동시키는 것이다. 이때, 같은 값을 갖는 두 블록이 충돌하면 두 블록은 하나로 합쳐지게 된다. 한 번의 이동에서 이미 합쳐진 블록은 또 다른 블록과 다시 합쳐질 수 없다. (실제 게임에서는 이동을 한 번 할 때마다 블록이 추가되지만, 이 문제에서 블록이 추가되는 경우는 없다) 의 경우에서 위로 블록을 이동시키면 의 상태가 된다. 여기서, 왼쪽으로 블록을 이동시키면 의 상태가 된다. 의 상태에서 블록을 오른쪽으로 이동시키면 가 되고, 여기서 다시 위로 블록을 이동시키면 이 된다. 여기서 오른쪽으로 블록을..
[ BOJ ] 16234 : 인구 이동 ( GOLD 4 ) / Python
·
-- 예전 기록/BOJ
문제 N×N크기의 땅이 있고, 땅은 1×1개의 칸으로 나누어져 있다. 각각의 땅에는 나라가 하나씩 존재하며, r행 c열에 있는 나라에는 A[r][c]명이 살고 있다. 인접한 나라 사이에는 국경선이 존재한다. 모든 나라는 1×1 크기이기 때문에, 모든 국경선은 정사각형 형태이다. 오늘부터 인구 이동이 시작되는 날이다. 인구 이동은 하루 동안 다음과 같이 진행되고, 더 이상 아래 방법에 의해 인구 이동이 없을 때까지 지속된다. 국경선을 공유하는 두 나라의 인구 차이가 L명 이상, R명 이하라면, 두 나라가 공유하는 국경선을 오늘 하루 동안 연다. 위의 조건에 의해 열어야하는 국경선이 모두 열렸다면, 인구 이동을 시작한다. 국경선이 열려있어 인접한 칸만을 이용해 이동할 수 있으면, 그 나라를 오늘 하루 동안은..
[ BOJ ] 1715 : 카드 정렬하기 ( GOLD 4 ) / Python
·
-- 예전 기록/BOJ
문제 정렬된 두 묶음의 숫자 카드가 있다고 하자. 각 묶음의 카드의 수를 A, B라 하면 보통 두 묶음을 합쳐서 하나로 만드는 데에는 A+B 번의 비교를 해야 한다. 이를테면, 20장의 숫자 카드 묶음과 30장의 숫자 카드 묶음을 합치려면 50번의 비교가 필요하다. 매우 많은 숫자 카드 묶음이 책상 위에 놓여 있다. 이들을 두 묶음씩 골라 서로 합쳐나간다면, 고르는 순서에 따라서 비교 횟수가 매우 달라진다. 예를 들어 10장, 20장, 40장의 묶음이 있다면 10장과 20장을 합친 뒤, 합친 30장 묶음과 40장을 합친다면 (10 + 20) + (30 + 40) = 100번의 비교가 필요하다. 그러나 10장과 40장을 합친 뒤, 합친 50장 묶음과 20장을 합친다면 (10 + 40) + (50 + 20)..