[ BOJ ] 12931 : 두 배 더하기 ( GOLD 5 ) / Python
·
-- 예전 기록/BOJ
>> 문제 바로가기 (https://www.acmicpc.net/problem/12931) 문제 모든 값이 0으로 채워져 있는 길이가 N인 배열 A가 있다. 영선이는 다음과 같은 두 연산을 수행할 수 있다. 배열에 있는 값 하나를 1 증가시킨다. 배열에 있는 모든 값을 두 배 시킨다. 배열 B가 주어졌을 때, 배열 A를 B로 만들기 위한 연산의 최소 횟수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 배열의 크기 N이 주어진다. (1 ≤ N ≤ 50) 둘째 줄에는 배열 B에 들어있는 원소가 공백으로 구분해서 주어진다. 배열에 B에 들어있는 값은 0보다 크거나 같고, 1,000보다 작거나 같다. 출력 첫째 줄에 배열 A를 B로 바꾸기 위한 최소 연산 횟수를 출력한다. 풀이 과정 배열의 원소마다 각각 2로..
[ BOJ ] 16198 : 에너지 모으기 ( SILVER 1 ) / Python
·
-- 예전 기록/BOJ
>> 문제 바로가기 (https://www.acmicpc.net/problem/16198) 문제 N개의 에너지 구슬이 일렬로 놓여져 있고, 에너지 구슬을 이용해서 에너지를 모으려고 한다. i번째 에너지 구슬의 무게는 Wi이고, 에너지를 모으는 방법은 다음과 같으며, 반복해서 사용할 수 있다. 에너지 구슬 하나를 고른다. 고른 에너지 구슬의 번호를 x라고 한다. 단, 첫 번째와 마지막 에너지 구슬은 고를 수 없다. x번째 에너지 구슬을 제거한다. Wx-1 × Wx+1의 에너지를 모을 수 있다. N을 1 감소시키고, 에너지 구슬을 1번부터 N번까지로 다시 번호를 매긴다. 번호는 첫 구슬이 1번, 다음 구슬이 2번, ... 과 같이 매겨야 한다. N과 에너지 구슬의 무게가 주어졌을 때, 모을 수 있는 에너지 ..
[ BOJ ] 2961 : 도영이가 만든 맛있는 음식 ( SILVER 2 ) / Python
·
-- 예전 기록/BOJ
>> 문제 바로가기 (https://www.acmicpc.net/problem/2961) 문제 도영이는 짜파구리 요리사로 명성을 날렸었다. 이번에는 이전에 없었던 새로운 요리에 도전을 해보려고 한다. 지금 도영이의 앞에는 재료가 N개 있다. 도영이는 각 재료의 신맛 S와 쓴맛 B를 알고 있다. 여러 재료를 이용해서 요리할 때, 그 음식의 신맛은 사용한 재료의 신맛의 곱이고, 쓴맛은 합이다. 시거나 쓴 음식을 좋아하는 사람은 많지 않다. 도영이는 재료를 적절히 섞어서 요리의 신맛과 쓴맛의 차이를 작게 만들려고 한다. 또, 물을 요리라고 할 수는 없기 때문에, 재료는 적어도 하나 사용해야 한다. 재료의 신맛과 쓴맛이 주어졌을 때, 신맛과 쓴맛의 차이가 가장 작은 요리를 만드는 프로그램을 작성하시오. 입력 첫..
[ BOJ ] 13414 : 수강신청 ( SILVER 3 ) / Python
·
-- 예전 기록/BOJ
>> 문제 바로가기 (https://www.acmicpc.net/problem/13414) 문제 국민대학교에서는 매 학기 시작 전 종합정보시스템에서 수강신청을 한다. 매 수강신청마다 아주 많은 학생들이 몰려 서버에 많은 부하가 가기 때문에, 국민대학교에서는 수강신청 부하 관리 시스템을 도입하기로 결정하였다. 새로운 관리 시스템은 다음과 같은 방식으로 동작한다. 수강신청 버튼이 활성화 된 후, 수강신청 버튼을 조금이라도 빨리 누른 학생이 대기목록에 먼저 들어간다. 이미 대기열에 들어가 있는 상태에서 다시 수강신청 버튼을 누를 경우 대기목록의 맨 뒤로 밀려난다. 잠시 후 수강신청 버튼이 비활성화 되면, 대기목록에서 가장 앞에 있는 학생부터 자동으로 수강신청이 완료되며, 수강 가능 인원이 꽉 찰 경우 나머지 ..
[ BOJ ] 23634 : 미안하다 이거 보여주려고 어그로 끌었다 ( PLATINUM 4 ) / Python
·
-- 예전 기록/BOJ
>> 문제 바로가기 (https://www.acmicpc.net/problem/23634) 문제 난 나뭇잎 마을의 초대 호카게인 센쥬 하시라마의 동생, 센쥬 토비라마라고 한다. 지금 우리 마을은 크나큰 위기에 빠져있다. 우리와 끊이지 않는 악연을 지닌 우치하 가문의 수장 우치하 마다라가 구미를 끌고 마을을 습격했기 때문이지. 형은 호카게로서 마다라와 전투를 벌이고 있고 마을 주민들에게 피해가 갈까 봐 제대로 전투하지 못하고 있어. 지금 놈의 화둔이 마을로 넘어오지 못하게 우리 형의 목둔이 막아주고 있으니 나무가 크게 불타기 전에 미리 주민들을 대피시켜야 해. 나뭇잎 마을을 지키려면 네 도움이 필요해. 현재 상황은 마을 뒷산에서 전투가 일어나고 있고, 형의 나무가 불길을 막아서고 있어. 지도를 통해 살펴보..
[ BOJ ] 20922 : 겹치는 건 싫어 ( SILVER 1 ) / Python
·
-- 예전 기록/BOJ
>> 문제 바로가기 (https://www.acmicpc.net/problem/20922) 문제 홍대병에 걸린 도현이는 겹치는 것을 매우 싫어한다. 특히 수열에서 같은 원소가 여러 개 들어 있는 수열을 싫어한다. 도현이를 위해 같은 원소가 K개 이하로 들어 있는 최장 연속 부분 수열의 길이를 구하려고 한다. 100 000 이하의 양의 정수로 이루어진 길이가 N인 수열이 주어진다. 이 수열에서 같은 정수를 K개 이하로 포함한 최장 연속 부분 수열의 길이를 구하는 프로그램을 작성해보자. 입력 첫째 줄에 정수 N (1 ≤ N ≤ 200 000)과 K (1 ≤ K ≤ 100)가 주어진다. 둘째 줄에는 a_1, a_2, ... a_n이 주어진다 (1 ≤ a_i ≤ 100 000) 출력 조건을 만족하는 최장 연속 ..
[ BOJ ] 5567 : 결혼식 ( SILVER 2 ) / Python
·
-- 예전 기록/BOJ
>> 문제 바로가기 (https://www.acmicpc.net/problem/5567) 문제 상근이는 자신의 결혼식에 학교 동기 중 자신의 친구와 친구의 친구를 초대하기로 했다. 상근이의 동기는 모두 N명이고, 이 학생들의 학번은 모두 1부터 N까지이다. 상근이의 학번은 1이다. 상근이는 동기들의 친구 관계를 모두 조사한 리스트를 가지고 있다. 이 리스트를 바탕으로 결혼식에 초대할 사람의 수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 상근이의 동기의 수 n (2 ≤ n ≤ 500)이 주어진다. 둘째 줄에는 리스트의 길이 m (1 ≤ m ≤ 10000)이 주어진다. 다음 줄부터 m개 줄에는 친구 관계 ai bi가 주어진다. (1 ≤ ai < bi ≤ n) ai와 bi가 친구라는 뜻이며, bi와 ai..
[ BOJ ] 18917 : 수열과 쿼리 38 ( SILVER 3 ) / Python
·
-- 예전 기록/BOJ
>> 문제 바로가기 (https://www.acmicpc.net/problem/18917) 문제 처음에 0이 하나 포함되어있는 배열 A가 있다. 이때, 다음 쿼리를 수행해야 한다. 1 x: A의 가장 뒤에 x를 추가한다. 2 x: A에서 x를 제거한다. A에 x가 두 개 이상 있는 경우에는 가장 앞에 있는 하나만 제거한다. 항상 A에 x가 있는 쿼리만 주어진다. 3: A에 포함된 모든 원소를 더한 값을 출력한다. 4: A에 포함된 모든 원소를 XOR한 값을 출력한다. 입력 첫째 줄에는 쿼리의 개수 M이 주어진다. 둘째 줄부터 다음 M 개의 줄에 쿼리가 주어진다. 출력 3번 혹은 4번 쿼리가 등장할 때마다, 답을 한 줄에 하나씩 출력한다. 풀이 과정 합을 누적시키는 변수 하나와, XOR을 누적시키는 변수 ..
[ CodeUp ] 코드업으로 꾸준히 PS 연습하기 15일차 ( 1153 ~ 1162 )
·
-- 예전 기록/CodeUp
오늘 푼 10문제 모두 조건문으로 쉽게 풀이할 수 있는 문제이다.
[ BOJ ] 15659 : 연산자 끼워넣기 (3) ( GOLD 4 ) / C
·
-- 예전 기록/BOJ
>> 문제 바로가기 (https://www.acmicpc.net/problem/15659) 문제 N개의 수로 이루어진 수열 A1, A2, ..., AN이 주어진다. 또, 수와 수 사이에 끼워넣을 수 있는 N-1개의 연산자가 주어진다. 연산자는 덧셈(+), 뺄셈(-), 곱셈(×), 나눗셈(÷)으로만 이루어져 있다. 우리는 수와 수 사이에 연산자를 하나씩 넣어서, 수식을 하나 만들 수 있다. 이때, 주어진 수의 순서를 바꾸면 안 된다. 예를 들어, 6개의 수로 이루어진 수열이 1, 2, 3, 4, 5, 6이고, 주어진 연산자가 덧셈(+) 2개, 뺄셈(-) 1개, 곱셈(×) 1개, 나눗셈(÷) 1개인 경우에는 총 60가지의 식을 만들 수 있다. 예를 들어, 아래와 같은 식을 만들 수 있다. 1+2+3-4×5÷..
[ BOJ ] 26598 : 색종이와 공예 ( GOLD 5 ) / Python
·
-- 예전 기록/BOJ
>> 문제 바로가기 (https://www.acmicpc.net/problem/26598) 문제 준성이는 색종이를 가위로 자르고 남은 색종이 조각들로 뭘 할지 생각해 보았다. 군 생활 동안 열심히 고민해 본 결과, 색종이를 다시 이어붙여 색종이 공예품을 만들기로 했다! 준성이가 색종이를 이어 붙일 때는 다음과 같은 규칙을 따른다. 각 색종이 조각들은 변과 변을 맞대고 있으며, 일부 또는 전체가 겹치지 않는다. 이어 붙어진 색종이 조각들은 2차원 상에서 세로 길이가 N, 가로 길이가 M인 빈틈없는 직사각형 모양이다. 이때, 각 색종이 조각들이 모두 가로 길이와 세로 길이가 정수인 빈틈없는 직사각형 모양이라면 예쁜 색종이 공예품이라고 한다. 준성이는 열심히 만든 색종이 공예품을 당신에게 자랑하기 위해 보여줬..
[ CodeUp ] 코드업으로 꾸준히 PS 연습하기 14일차 ( 1139 ~ 1152 )
·
-- 예전 기록/CodeUp
문법을 꽤 알고 있는 C, Python, Java 로 푸는 것 보다는 잘 모르는 C++ 로 푸는게 의미있어 보여서 오늘부터 C++ 로 연습하기로 했다. ( 그 탓인지 컴파일 에러가 자주 난다. ) 1139, 1140, 1143, 1144, 1147, 1148 정수를 입력받아 비트 연산을 수행한 결과를 출력하는 문제이다. 1149, 1150 조건문으로 풀이할 수 있고, max min 함수를 만들어 풀이할 수도 있다. 1151, 1152 단순 if문, if-else문 으로 풀이할 수 있다.