1004hujin의 등록된 링크

 1004hujin로 등록된 네이버 블로그 포스트 수는 38건입니다.

백준 4949번 파이썬 (균형잡힌 세상) [내부링크]

문제 링크 https://www.acmicpc.net/problem/4949 4949번: 균형잡힌 세상 문제 세계는 균형이 잘 잡혀있어야 한다. 양과 음, 빛과 어둠 그리고 왼쪽 괄호와 오른쪽 괄호처럼 말이다. 정민이의 임무는 어떤 문자열이 주어졌을 때, 괄호들의 균형이 잘 맞춰져 있는지 판단하는 프로그램을 짜는 것이다. 문자열에 포함되는 괄호는 소괄호("()") 와 대괄호("[]")로 2종류이고, 문자열이 균형을 이루는 조건은 아래와 같다. 모든 왼쪽 소괄호("(")는 오른쪽 소괄호(")")와만 짝을 이뤄야 한다. 모든 왼쪽 대괄호("[")는 오른쪽 대괄호("]")와만 짝을 이뤄야 한다. 모든 오른쪽 괄호들은 자신과 짝을 이룰 수 ... www.acmicpc.net 문제 풀이 주어진 문자열에서 괄호들만 모아 bracket_list를 만든다. stack이라는 빈 list를 만든 뒤, 괄호들을 하나씩 scan한다. "(" 또는 "["는 시작하는 괄호이므로 stack에 무조건 넣어준다.

백준 1874번 파이썬 (스택 수열) [내부링크]

문제 링크 https://www.acmicpc.net/problem/1874 1874번: 스택 수열 문제 스택 (stack)은 기본적인 자료구조 중 하나로, 컴퓨터 프로그램을 작성할 때 자주 이용되는 개념이다. 스택은 자료를 넣는 (push) 입구와 자료를 뽑는 (pop) 입구가 같아 제일 나중에 들어간 자료가 제일 먼저 나오는 (LIFO, Last in First out) 특성을 가지고 있다. 1부터 n까지의 수를 스택에 넣었다가 뽑아 늘어놓음으로써, 하나의 수열을 만들 수 있다. 이때, 스택에 push하는 순서는 반드시 오름차순을 지키도록 한다고 하자. 임의의 수열이 주어졌을 때 스택을 이용해 그 수열을 만들 수 있는지 없는지... www.acmicpc.net 문제 풀이 문제를 이해하기가 조금 어려운데, 아래 사진을 참고하면 된다. 문제에 주어진 예시로 설명을 해 보았다. stack을 쌓을 건데, count = 1에서 시작하여 1씩 더해가면서 조건에 맞는 stack을 만든다. 백

백준 5597번 파이썬 (과제 안 내신 분..?) [내부링크]

문제 링크 https://www.acmicpc.net/problem/5597 5597번: 과제 안 내신 분..? 문제 X대학 M교수님은 프로그래밍 수업을 맡고 있다. 교실엔 학생이 30명이 있는데, 학생 명부엔 각 학생별로 1번부터 30번까지 출석번호가 붙어 있다. 교수님이 내준 특별과제를 28명이 제출했는데, 그 중에서 제출 안 한 학생 2명의 출석번호를 구하는 프로그램을 작성하시오. 입력 입력은 총 28줄로 각 제출자(학생)의 출석번호 n(1 ≤ n ≤ 30)가 한 줄에 하나씩 주어진다. 출석번호에 중복은 없다. 출력 출력은 2줄이다. 1번째 줄엔 제출하지 않은 학생의 출석번호 중 가장 작은 것을 출력하고, 2번째 줄에선 그 다음 출석번호... www.acmicpc.net 문제 풀이 과제를 안 낸 사람을 찾는 문제이다. number_list에 1번부터 30번까지 출석번호를 다 넣어 둔다. 과제 낸 사람의 출석번호를 input으로 받으면 number_list에서 지워준다. 마지막에

백준 18258번 파이썬 (큐 2) [내부링크]

문제 링크 https://www.acmicpc.net/problem/18258 18258번: 큐 2 문제 정수를 저장하는 큐를 구현한 다음, 입력으로 주어지는 명령을 처리하는 프로그램을 작성하시오. 명령은 총 여섯 가지이다. push X: 정수 X를 큐에 넣는 연산이다. pop: 큐에서 가장 앞에 있는 정수를 빼고, 그 수를 출력한다. 만약 큐에 들어있는 정수가 없는 경우에는 -1을 출력한다. size: 큐에 들어있는 정수의 개수를 출력한다. empty: 큐가 비어있으면 1, 아니면 0을 출력한다. front: 큐의 가장 앞에 있는 정수를 출력한다. 만약 큐에 들어있는 정수가 없는 경우에는 -1을 출력한다. back: 큐의 가장 ... www.acmicpc.net 문제 풀이 아무 생각 없이 코드를 작성하면 시간 초과가 뜬다. "큐"를 사용하는 문제이다. sys.stdin.readline() input()을 이용해 여러 줄을 입력받으면 시간 초과 문제가 발생한다. 이런 경우 sys를

백준 2164번 파이썬 (카드2) [내부링크]

문제 링크 https://www.acmicpc.net/problem/2164 2164번: 카드2 2164번 제출 맞힌 사람 숏코딩 재채점 결과 채점 현황 질문 검색 카드2 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 2 초 (추가 시간 없음) 128 MB 65628 33796 27612 51.619% 문제 N장의 카드가 있다. 각각의 카드는 차례로 1부터 N까지의 번호가 붙어 있으며, 1번 카드가 제일 위에, N번 카드가 제일 아래인 상태로 순서대로 카드가 놓여 있다. 이제 다음과 같은 동작을 카드가 한 장 남을 때까지 반복하게 된다. 우선, 제일 위에 있는 카드를 바닥에 버린다. 그 다음, 제일 위에 있는 카드를 ... www.acmicpc.net 문제 풀이 q라는 덱에 1부터 N까지의 정수를 넣어준다. q의 맨 왼쪽에 있는 숫자를 popleft()를 통해 버리고, 다음 왼쪽에 있는 숫자는 popleft를 통해 뽑아내어 맨 뒤에 append 해준다. 이 과정을 반복하다가

백준 27065번 파이썬 (2022년이 아름다웠던 이유) [내부링크]

문제 링크 https://www.acmicpc.net/problem/27065 27065번: 2022년이 아름다웠던 이유 27065번 제출 맞힌 사람 숏코딩 재채점 결과 채점 현황 질문 게시판 2022년이 아름다웠던 이유 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 1 초 1024 MB 309 239 213 87.295% 문제 Good Bye, BOJ 2022! 대회는 2022년의 끝을 기념하는 알고리즘 문제해결 대회이다. leejseo 라는 핸들을 사용하는 종서 는 자신의 22번째 생일인 2022년 12월 31일에 Good Bye, BOJ 2022!를 개최하기로 결심했다. 정휘는 Good Bye, BOJ 2022!가 개최된다는 소식에 기뻐... www.acmicpc.net 문제 풀이 이 문제 출제하려고 2022년 끝날 때까지 기다렸던 게 분명하다. 먼저 약수를 구하는 함수를 정의한다. function 함수는 약수를 모두 구해 오름차순으로 하나의 list에 넣어주는 함수이

백준 2908번 파이썬 (상수) [내부링크]

문제 링크 https://www.acmicpc.net/problem/2908 2908번: 상수 2908번 제출 맞힌 사람 숏코딩 재채점 결과 채점 현황 질문 게시판 상수 다국어 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 1 초 128 MB 104403 72260 62064 69.899% 문제 상근이의 동생 상수는 수학을 정말 못한다. 상수는 숫자를 읽는데 문제가 있다. 이렇게 수학을 못하는 상수를 위해서 상근이는 수의 크기를 비교하는 문제를 내주었다. 상근이는 세 자리 수 두 개를 칠판에 써주었다. 그 다음에 크기가 큰 수를 말해보라고 했다. 상수는 수를 다른 사람과 다르게 거꾸로 읽는다. 예를 들어, 734와 ... www.acmicpc.net 문제 풀이 원래 숫자에서 일의 자리를 -> 백의 자리로 십의 자리는 -> 십의 자리로 백의 자리를 -> 일의 자리로 변형해주면 된다. 코드는 아래와 같다. # 상근이가 칠판에 적은 두 수 x, y = map(int, input(

백준 2738번 파이썬 (행렬 덧셈) [내부링크]

문제 링크 https://www.acmicpc.net/problem/2738 2738번: 행렬 덧셈 2738번 제출 맞힌 사람 숏코딩 재채점 결과 채점 현황 질문 게시판 행렬 덧셈 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 1 초 128 MB 22117 12499 11188 57.921% 문제 N*M크기의 두 행렬 A와 B가 주어졌을 때, 두 행렬을 더하는 프로그램을 작성하시오. 입력 첫째 줄에 행렬의 크기 N 과 M이 주어진다. 둘째 줄부터 N개의 줄에 행렬 A의 원소 M개가 차례대로 주어진다. 이어서 N개의 줄에 행렬 B의 원소 M개가 차례대로 주어진다. N과 M은 100보다 작거나 같고, 행렬의 원소는 절댓값이 ... www.acmicpc.net 문제 풀이 두 matrix를 만들고 같은 자리에 있는 원소를 더해주는 연산을 한다. 같은 행에 속한 원소는 띄어쓰기(' ')로 연결하고, 행이 달라지면 print()를 통해 줄바꿈한다. # 두 행렬 N, M = map(in

백준 10870번 파이썬 (피보나치 수 5) [내부링크]

문제 링크 https://www.acmicpc.net/problem/10870 10870번: 피보나치 수 5 10870번 제출 맞힌 사람 숏코딩 재채점 결과 채점 현황 질문 게시판 피보나치 수 5 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 1 초 256 MB 88943 54426 46347 61.700% 문제 피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 된다. 이를 식으로 써보면 F n = F n-1 + F n-2 (n ≥ 2)가 된다. n=17일때 까지 피보나치 수를 써보면 다음과 같다. 0, 1, 1, 2, 3,... www.acmicpc.net 문제 풀이 이전 두 원소를 더해 list에 추가하는 작업을 반복한다. fibonacci = [0,1] n = int(input()) for i in range(2,n+1): fibonacci.append(fibonacc

백준 11660번 파이썬 (구간 합 구하기 5) [내부링크]

문제 링크 https://www.acmicpc.net/problem/11660 11660번: 구간 합 구하기 5 문제 N×N개의 수가 N×N 크기의 표에 채워져 있다. (x1, y1)부터 (x2, y2)까지 합을 구하는 프로그램을 작성하시오. (x, y)는 x행 y열을 의미한다. 예를 들어, N = 4이고, 표가 아래와 같이 채워져 있는 경우를 살펴보자. 1 2 3 4 2 3 4 5 3 4 5 6 4 5 6 7 여기서 (2, 2)부터 (3, 4)까지 합을 구하면 3+4+5+4+5+6 = 27이고, (4, 4)부터 (4, 4)까지 합을 구하면 7이다. 표에 채워져 있는 수와 합을 구하는 연산이 주어졌을 때, 이를 처리하는 프로그램을 작성하시오. www.acmicpc.net 문제 풀이 주어진 숫자들을 받아 matrix로 만든 후, (x1,y1)과 (x2,y2)를 꼭짓점으로 하는 직사각형에 속한 숫자들의 합을 구하면 된다. x1, y1, x2, y2 쌍을 받을 때마다 누적 합을 계산하면

백준 11047번 파이썬 (동전) [내부링크]

문제 링크 https://www.acmicpc.net/problem/11047 11047번: 동전 0 문제 준규가 가지고 있는 동전은 총 N종류이고, 각각의 동전을 매우 많이 가지고 있다. 동전을 적절히 사용해서 그 가치의 합을 K로 만들려고 한다. 이때 필요한 동전 개수의 최솟값을 구하는 프로그램을 작성하시오. 입력 첫째 줄에 N과 K가 주어진다. (1 ≤ N ≤ 10, 1 ≤ K ≤ 100,000,000) 둘째 줄부터 N개의 줄에 동전의 가치 A i 가 오름차순으로 주어진다. (1 ≤ A i ≤ 1,000,000, A 1 = 1, i ≥ 2인 경우에 A i 는 A i-1 의 배수) 출력 첫째 줄에 K원을 만드는데 필요한 동전 개... www.acmicpc.net 문제 풀이 그리디 알고리즘을 이용한다. 동전의 가치 중 큰 것부터 시작해 탐색한다. import sys input = sys.stdin.readline # 동전 N 종류, 총 가치의 합 K N, K = map(int, i

백준 1931번 파이썬 (회의실 배정) [내부링크]

문제 링크 https://www.acmicpc.net/problem/1931 1931번: 회의실 배정 1931번 제출 맞힌 사람 숏코딩 재채점 결과 채점 현황 강의 질문 검색 회의실 배정 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 2 초 128 MB 145900 45709 32289 29.607% 문제 한 개의 회의실이 있는데 이를 사용하고자 하는 N개의 회의에 대하여 회의실 사용표를 만들려고 한다. 각 회의 I에 대해 시작시간과 끝나는 시간이 주어져 있고, 각 회의가 겹치지 않게 하면서 회의실을 사용할 수 있는 회의의 최대 개수를 찾아보자. 단, 회의는 한번 시작하면 중간에 중단될 수 없으며 한 회의가 끝나는 것과 동... www.acmicpc.net 문제 풀이 그리디 알고리즘 문제이다. [회의시작시간, 회의끝시간]을 원소로 갖는 list를 만든다. list 내의 원소들을 정렬해야 하는데, 회의가 끝나는 시간이 오름차순이 되도록 배열하며 만약 회의가 끝나는 시간이 같다

백준 11399번 파이썬 (ATM) [내부링크]

문제 링크 https://www.acmicpc.net/problem/11399 11399번: ATM 11399번 제출 맞힌 사람 숏코딩 재채점 결과 채점 현황 강의 질문 검색 ATM 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 1 초 256 MB 77309 51743 41904 67.474% 문제 인하은행에는 ATM이 1대밖에 없다. 지금 이 ATM앞에 N명의 사람들이 줄을 서있다. 사람은 1번부터 N번까지 번호가 매겨져 있으며, i번 사람이 돈을 인출하는데 걸리는 시간은 P i 분이다. 사람들이 줄을 서는 순서에 따라서, 돈을 인출하는데 필요한 시간의 합이 달라지게 된다. 예를 들어, 총 5명이 있고, P 1 = 3,... www.acmicpc.net 문제 풀이 돈을 인출하는데 걸리는 시간이 적은 사람부터 먼저 인출하면, 각 사람이 돈을 인출하는데 필요한 시간의 합이 최소가 된다. 오름차순으로 정리한 time_list import sys input = sys.stdin.

백준 1541번 파이썬 (잃어버린 괄호) [내부링크]

문제 링크 https://www.acmicpc.net/problem/1541 1541번: 잃어버린 괄호 1541번 제출 맞힌 사람 숏코딩 재채점 결과 채점 현황 강의 질문 검색 잃어버린 괄호 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 2 초 128 MB 57098 29575 23506 51.415% 문제 세준이는 양수와 +, -, 그리고 괄호를 가지고 식을 만들었다. 그리고 나서 세준이는 괄호를 모두 지웠다. 그리고 나서 세준이는 괄호를 적절히 쳐서 이 식의 값을 최소로 만들려고 한다. 괄호를 적절히 쳐서 이 식의 값을 최소로 만드는 프로그램을 작성하시오. 입력 첫째 줄에 식이 주어진다. 식은 ‘0’~‘9’, ‘+’, 그... www.acmicpc.net 문제 풀이 괄호를 적절히 쳐서 주어진 식의 값을 최소로 만드는 프로그램을 짜는 문제이다. '-' 부호를 기준으로 '-' 뒤의 값들을 괄호로 묶어 계산하면 값을 최소로 만들 수 있다. 예시는 아래와 같다. sum 연산 주

백준 13305번 파이썬 (주유소) [내부링크]

문제 링크 https://www.acmicpc.net/problem/13305 13305번: 주유소 문제 어떤 나라에 N개의 도시가 있다. 이 도시들은 일직선 도로 위에 있다. 편의상 일직선을 수평 방향으로 두자. 제일 왼쪽의 도시에서 제일 오른쪽의 도시로 자동차를 이용하여 이동하려고 한다. 인접한 두 도시 사이의 도로들은 서로 길이가 다를 수 있다. 도로 길이의 단위는 km를 사용한다. 처음 출발할 때 자동차에는 기름이 없어서 주유소에서 기름을 넣고 출발하여야 한다. 기름통의 크기는 무제한이어서 얼마든지 많은 기름을 넣을 수 있다. 도로를 이용하여 이동할 때 1km마다 1리터의 기름을 사용한다. 각 도시에는 단 하나의 주유소가 ... www.acmicpc.net 문제 풀이 비용은 거리(distance)와 기름값(price)의 곱으로 계산된다. distance와 price 변수를 정의한 뒤, 두 변수를 update 하면서 최종 가격을 구한다. 문제에 주어진 예시를 이용한 아이디어는

백준 10828번 파이썬 (스택) [내부링크]

문제 링크 https://www.acmicpc.net/problem/10828 10828번: 스택 문제 정수를 저장하는 스택을 구현한 다음, 입력으로 주어지는 명령을 처리하는 프로그램을 작성하시오. 명령은 총 다섯 가지이다. push X: 정수 X를 스택에 넣는 연산이다. pop: 스택에서 가장 위에 있는 정수를 빼고, 그 수를 출력한다. 만약 스택에 들어있는 정수가 없는 경우에는 -1을 출력한다. size: 스택에 들어있는 정수의 개수를 출력한다. empty: 스택이 비어있으면 1, 아니면 0을 출력한다. top: 스택의 가장 위에 있는 정수를 출력한다. 만약 스택에 들어있는 정수가 없는 경우에는 -1을 출력한다. 입력 첫째 ... www.acmicpc.net 문제 풀이 파이썬에서 스택 자료구조는 따로 제공되지 않는다. 그러므로 list를 이용해 stack을 표현한다. list의 가장 왼쪽에 있는 원소가 가장 먼저 들어온(가장 아래에 있는) 원소이며, list의 가장 오른쪽에 있는

백준 10773번 파이썬 (제로) [내부링크]

문제 링크 https://www.acmicpc.net/problem/10773 10773번: 제로 문제 나코더 기장 재민이는 동아리 회식을 준비하기 위해서 장부를 관리하는 중이다. 재현이는 재민이를 도와서 돈을 관리하는 중인데, 애석하게도 항상 정신없는 재현이는 돈을 실수로 잘못 부르는 사고를 치기 일쑤였다. 재현이는 잘못된 수를 부를 때마다 0을 외쳐서, 가장 최근에 재민이가 쓴 수를 지우게 시킨다. 재민이는 이렇게 모든 수를 받아 적은 후 그 수의 합을 알고 싶어 한다. 재민이를 도와주자! 입력 첫 번째 줄에 정수 K가 주어진다. (1 ≤ K ≤ 100,000) 이후 K개의 줄에 정수가 1개씩 주어진다. 정수는 0에서 1,0... www.acmicpc.net 문제 풀이 스택 응용 문제이다. 비어있는 스택(파이썬에서는 list로 스택을 표현)을 만든다. 새로 들어오는 input을 x로 받고, x가 0가 아닐 경우에는 스택에 넣어주고, x가 0일 경우에는 스택에 있던 마지막 원소를

백준 9012번 파이썬 (괄호) [내부링크]

문제 링크 https://www.acmicpc.net/problem/9012 9012번: 괄호 9012번 제출 맞힌 사람 숏코딩 재채점 결과 채점 현황 강의 질문 검색 괄호 다국어 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 1 초 128 MB 141710 65113 47039 44.846% 문제 괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고 부른다. 한 쌍의 괄호 기호로 된 “( )” 문자열은 기본 VPS 이라고 부른다. 만일 x ... www.acmicpc.net 문제 풀이 a는 '('의 개수를 저장해주는 변수, b는 ')'의 개수를 저장해주는 변수이다. ')' 개수의 누적합이 '(' 개수의 누적합보다 많아지면 잘못된 괄호 수식이므로 'NO'를 출력한 뒤 break 해준다. 각 입력값에서

백준 11054번 파이썬 (가장 긴 바이토닉 부분 수열) [내부링크]

문제 링크 https://www.acmicpc.net/problem/11054 11054번: 가장 긴 바이토닉 부분 수열 11054번 제출 맞힌 사람 숏코딩 재채점 결과 채점 현황 강의 질문 검색 가장 긴 바이토닉 부분 수열 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 1 초 256 MB 38415 19597 15315 50.794% 문제 수열 S가 어떤 수 S k 를 기준으로 S 1 < S 2 < ... S k-1 < S k > S k+1 > ... S N-1 > S N 을 만족한다면, 그 수열을 바이토닉 수열이라고 한다. 예를 들어, {10, 20, 30 , 25, 20}과 {10, 20, 30, 40 }, { 50 , 40, 25, 1... www.acmicpc.net 문제 풀이 앞에서부터 증가하는 가장 긴 부분수열의 길이 list를 구하고, 뒤에서부터 증가하는 가장 긴 부분수열의 list를 구한 뒤 둘을 합쳐서 가장 긴 바이토닉 부분수열의 길이 list를 구하였다.

백준 2565번 파이썬 (전깃줄) [내부링크]

문제 링크 https://www.acmicpc.net/problem/2565 2565번: 전깃줄 문제 두 전봇대 A와 B 사이에 하나 둘씩 전깃줄을 추가하다 보니 전깃줄이 서로 교차하는 경우가 발생하였다. 합선의 위험이 있어 이들 중 몇 개의 전깃줄을 없애 전깃줄이 교차하지 않도록 만들려고 한다. 예를 들어, < 그림 1 >과 같이 전깃줄이 연결되어 있는 경우 A의 1번 위치와 B의 8번 위치를 잇는 전깃줄, A의 3번 위치와 B의 9번 위치를 잇는 전깃줄, A의 4번 위치와 B의 1번 위치를 잇는 전깃줄을 없애면 남아있는 모든 전깃줄이 서로 교차하지 않게 된다. < 그림 1 > 전깃줄이 전봇대에 연결되는 위치는 전봇대 위에서... www.acmicpc.net 문제 풀이 동적 계획법 문제이다. 전깃줄 A를 기준으로 위에서부터 연결되는 위치를 list로 만들고, 가장 긴 증가하는 수열을 뽑아 전체 N에서 뺀다. import sys input = sys.stdin.readline # 전

백준 2156번 파이썬 (포도주 시식) [내부링크]

문제 링크 https://www.acmicpc.net/problem/2156 2156번: 포도주 시식 2156번 제출 맞힌 사람 숏코딩 재채점 결과 채점 현황 강의 질문 검색 포도주 시식 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 2 초 128 MB 107214 36418 26245 32.621% 문제 효주는 포도주 시식회에 갔다. 그 곳에 갔더니, 테이블 위에 다양한 포도주가 들어있는 포도주 잔이 일렬로 놓여 있었다. 효주는 포도주 시식을 하려고 하는데, 여기에는 다음과 같은 두 가지 규칙이 있다. 포도주 잔을 선택하면 그 잔에 들어있는 포도주는 모두 마셔야 하고, 마신 후에는 원래 위치에 다시 놓아야 한다. 연속으로... www.acmicpc.net 문제 풀이 연속으로 놓여있는 3개의 잔을 모두 마실 수 없으므로, 바로 이전 잔을 마시는 경우와 마시지 않는 경우로 나누어 생각할 수 있다. import sys input = sys.stdin.readline # 포도주

백준 11659번 파이썬 (구간 합 구하기 4) [내부링크]

문제 링크 https://www.acmicpc.net/problem/11659 11659번: 구간 합 구하기 4 11659번 제출 맞힌 사람 숏코딩 재채점 결과 채점 현황 강의 질문 검색 구간 합 구하기 4 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 1 초 256 MB 47954 20933 16285 42.244% 문제 수 N개가 주어졌을 때, i번째 수부터 j번째 수까지 합을 구하는 프로그램을 작성하시오. 입력 첫째 줄에 수의 개수 N과 합을 구해야 하는 횟수 M이 주어진다. 둘째 줄에는 N개의 수가 주어진다. 수는 1,000보다 작거나 같은 자연수이다. 셋째 줄부터 M개의 줄에는 합을 구해야 하는 구간 i와 j가 주어진다. 출... www.acmicpc.net 문제 풀이 누적 합을 이용하였다. sum_list의 i+1번째 원소는 number_list의 1번째부터 i번째까지 원소의 합이다. import sys input = sys.stdin.readline # N은 수

백준 2559번 파이썬 (수열) [내부링크]

문제 링크 https://www.acmicpc.net/problem/2559 2559번: 수열 문제 매일 아침 9시에 학교에서 측정한 온도가 어떤 정수의 수열로 주어졌을 때, 연속적인 며칠 동안의 온도의 합이 가장 큰 값을 알아보고자 한다. 예를 들어, 아래와 같이 10일 간의 온도가 주어졌을 때, 3 -2 -4 -9 0 3 7 13 8 -3 모든 연속적인 이틀간의 온도의 합은 아래와 같다. 이때, 온도의 합이 가장 큰 값은 21이다. 또 다른 예로 위와 같은 온도가 주어졌을 때, 모든 연속적인 5일 간의 온도의 합은 아래와 같으며, 이때, 온도의 합이 가장 큰 값은 31이다. 매일 측정한 온도가 정수의 수열로 주어졌을... www.acmicpc.net 문제 풀이 누적 합 list를 구하고, for문을 이용해 K개 수열의 합을 'temp'라는 list에 넣어주었다. temp에서 max 값을 출력하면 된다. import sys input = sys.stdin.readline # N은

백준 3003번 파이썬 (킹, 퀸, 룩, 비숍, 나이트, 폰) [내부링크]

문제 링크 https://www.acmicpc.net/problem/3003 3003번: 킹, 퀸, 룩, 비숍, 나이트, 폰 3003번 제출 맞힌 사람 숏코딩 재채점 결과 채점 현황 질문 검색 킹, 퀸, 룩, 비숍, 나이트, 폰 다국어 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 1 초 128 MB 40676 23666 21466 59.619% 문제 동혁이는 오래된 창고를 뒤지다가 낡은 체스판과 피스를 발견했다. 체스판의 먼지를 털어내고 걸레로 닦으니 그럭저럭 쓸만한 체스판이 되었다. 하지만, 검정색 피스는 모두 있었으나, 흰색 피스는 개수가 올바르지 않았다. 체스는 총 16개의 피스를 사용하며, 킹 1개, 퀸 1개, 룩 2개, 비숍 2개, 나... www.acmicpc.net 문제 풀이 원래 말의 개수에서 흰색 말의 개수를 빼서 구한다. # 동혁이가 찾은 흰색 킹, 퀸, 룩, 비숍, 나이트, 폰의 개수 white = list(map(int, input().split())

백준 25304번 파이썬 (영수증) [내부링크]

문제 링크 https://www.acmicpc.net/problem/25304 25304번: 영수증 문제 준원이는 저번 주에 살면서 처음으로 코스트코를 가 봤다. 정말 멋졌다. 그런데, 몇 개 담지도 않았는데 수상하게 높은 금액이 나오는 것이다! 준원이는 영수증을 보면서 정확하게 계산된 것이 맞는지 확인해보려 한다. 영수증에 적힌, 구매한 각 물건의 가격과 개수 구매한 물건들의 총 금액 을 보고, 구매한 물건의 가격과 개수로 계산한 총 금액이 영수증에 적힌 총 금액과 일치하는지 검사해보자. 입력 첫째 줄에는 영수증에 적힌 총 금액 X $X$ 가 주어진다. 둘째 줄에는 영수증에 적힌 구매한 물건의 종류의 수 N $N$ 이 주어진다.... www.acmicpc.net 문제 풀이 영수증에 적힌 구매한 물건의 금액이 총 금액과 일치하면 "Yes", 일치하지 않으면 "No"를 출력한다. import sys input = sys.stdin.readline # 총 금액 X = int(input(

백준 10989번 파이썬 (수 정렬하기 3) [내부링크]

문제 링크 https://www.acmicpc.net/problem/10989 10989번: 수 정렬하기 3 입력 첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 10,000보다 작거나 같은 자연수이다. 출력 첫째 줄부터 N개의 줄에 오름차순으로 정렬한 결과를 한 줄에 하나씩 출력한다. 예제 입력 1 복사 10 5 2 3 1 4 2 3 5 1 7 예제 출력 1 복사 1 1 2 2 3 3 4 5 5 7 출처 문제를 만든 사람: baekjoon 데이터를 추가한 사람: cgiosy 문제의 오타를 찾은 사람: joonas 시간 제한 Java 8: 3 초 Java 8... www.acmicpc.net 문제 풀이 문제만 보면 쉽다. 그러나 아무 생각 없이 list를 하나 만들어 모든 원소를 append로 받아와 sort한 후 출력하면 메모리 초과가 뜬다. for문 속에서 append를 사용하게 되면 메모리 재할당이 이

백준 1978번 파이썬 (소수 찾기) [내부링크]

문제 링크 https://www.acmicpc.net/problem/1978 1978번: 소수 찾기 1978번 제출 맞힌 사람 숏코딩 재채점 결과 채점 현황 강의 질문 검색 소수 찾기 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 2 초 128 MB 138223 64684 51961 46.788% 문제 주어진 수 N개 중에서 소수가 몇 개인지 찾아서 출력하는 프로그램을 작성하시오. 입력 첫 줄에 수의 개수 N이 주어진다. N은 100이하이다. 다음으로 N개의 수가 주어지는데 수는 1,000 이하의 자연수이다. 출력 주어진 수들 중 소수의 개수를 출력한다. 예제 입력 1 복사 4 1 3 5 7 예제 출력 1 복사 3 출처 ... www.acmicpc.net 문제 풀이 소수를 판별하는 for문을 만든다. 1은 소수가 아니므로 1일 경우 continue한다. 1이 아니라면, 판별하려는 수가 (판별하려는 수 - 1)까지의 자연수로 나누었을 때 나누어 떨어지는지 여부를 확인한다. 만

백준 16139번 파이썬 (인간-컴퓨터 상호작용) [내부링크]

문제 링크 https://www.acmicpc.net/problem/16139 16139번: 인간-컴퓨터 상호작용 문제 승재는 인간-컴퓨터 상호작용에서 생체공학 설계를 공부하다가 키보드 자판이 실용적인지 궁금해졌다. 이를 알아보기 위해 승재는 다음과 같은 생각을 했다. '문자열에서 특정 알파벳이 몇 번 나타나는지 알아봐서 자주 나타나는 알파벳이 중지나 검지 위치에 오는 알파벳인지 확인하면 실용적인지 확인할 수 있을 것이다.' 승재를 도와 특정 문자열 S $S$ , 특정 알파벳 α $\alpha$ 와 문자열의 구간 [ l , r ] $[l,r]$ 이 주어지면 S $S$ 의 l $l$ 번째 문자부터 r $r$ 번째 문자 사이에 α $\alpha$... www.acmicpc.net 문제 풀이 화가 난다. 누적합 싫다. 일단 단순하게 입력 받는 경우마다 이중 for문을 돌리는 경우 50점이 나온다. 아래는 50점 코드이다. import sys input = sys.stdin.readline

백준 10986번 파이썬 (나머지 합) [내부링크]

문제 링크 https://www.acmicpc.net/problem/10986 10986번: 나머지 합 10986번 제출 맞힌 사람 숏코딩 재채점 결과 채점 현황 강의 질문 검색 나머지 합 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 1 초 256 MB 16831 5062 3704 28.556% 문제 수 N개 A 1 , A 2 , ..., A N 이 주어진다. 이때, 연속된 부분 구간의 합이 M으로 나누어 떨어지는 구간의 개수를 구하는 프로그램을 작성하시오. 즉, A i + ... + A j (i ≤ j) 의 합이 M으로 나누어 떨어지는 (i, j) 쌍의 개수를 구해야 한다. 입력 첫째 줄에 N과 M이 주어진다. (1 ≤ ... www.acmicpc.net 문제 풀이 N개의 수와 자연수 M이 주어졌을 때, 연속된 부분 구간의 합이 M으로 나누어 떨어지는 구간의 개수를 출력하는 프로그램을 만들어야 한다. 모든 부분 구간의 합을 구해 list에 저장한 후 M으로 나눈 나머지가

임상시험의 단계 [내부링크]

우리가 사용하는 모든 약들이 사람에게 들어가기 위해서는 반드시 임상시험이라는 까다로운 검증 절차를 통과해야 한다. 환자 입장이 되어 생각해보면, 어떠한 약이 효과가 있고 안전하다는 확신이 있어야 약을 복용하겠다는 다짐을 할 수 있을 것이다. 임상시험이란? 신약, 의료 기기, 새로운 치료법의 안전성과 효용성에 대한 시험이나 연구를 의미한다. 임상시험도 사람에게 하는 test이다 보니 깐깐한 규정을 통과한 의약품이나 신약을 대상으로 진행한다. 임상시험의 단계는 전임상 - 임상1상 - 임상2상 - 임상3상 - (임상4상)이다. 전임상 임상을 하기 전 단계를 의미한다. 주로 돼지, 쥐 등 사람의 신체 구조와 비슷한 동물을 이용해 진행하는 실험이다. 약이 확실한 효과가 있는지와 심각한 부작용은 없는지를 검증하고, 기본적 약리학 지표들(약의 유효농도 등)을 결정한다. 본격적 임상 시험에 들어가면 천문학적 규모의 돈이 들어가기 때문에, 제약회사 입장에서는 동물을 이용한 전임상 단계에서 충분한 효

백준 15649번 파이썬 (N과 M (1)) [내부링크]

문제 링크 https://www.acmicpc.net/problem/15649 15649번: N과 M (1) 문제 자연수 N과 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오. 1부터 N까지 자연수 중에서 중복 없이 M개를 고른 수열 입력 첫째 줄에 자연수 N과 M이 주어진다. (1 ≤ M ≤ N ≤ 8) 출력 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해야 한다. 예제 입력 1 복사 3 1 예제 출력 1 복사 1 2 3 예제 입력 2 복사 4 2 예제 ... www.acmicpc.net 문제 풀이 dfs(깊이 우선 탐색)의 일종인 backtracking(백트래킹) 문제이다. 순열 문제이기도 하다. join 함수 [3,4,5]를 '3 4 5'의 형태로 출력해주기 위해 join 함수를 이용한다. x

백준 15651번 파이썬 (N과 M (3)) [내부링크]

문제 링크 https://www.acmicpc.net/problem/15651 15651번: N과 M (3) 문제 자연수 N과 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오. 1부터 N까지 자연수 중에서 M개를 고른 수열 같은 수를 여러 번 골라도 된다. 입력 첫째 줄에 자연수 N과 M이 주어진다. (1 ≤ M ≤ N ≤ 7) 출력 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해야 한다. 예제 입력 1 복사 3 1 예제 출력 1 복사 1 2 3 예제 입력... www.acmicpc.net 문제 풀이 15649번 문제가 순열 문제였다면 15651번 문제는 중복순열 문제이다. 15649번 코드에서 조건문을 제거하면 된다. N, M = map(int,input().split()) number_list =

백준 15650번 파이썬 (N과 M (2)) [내부링크]

문제 링크 https://www.acmicpc.net/problem/15650 15650번: N과 M (2) 15650번 제출 맞힌 사람 숏코딩 재채점 결과 채점 현황 강의 질문 검색 N과 M (2) 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 1 초 512 MB 47252 35289 25666 74.179% 문제 자연수 N과 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오. 1부터 N까지 자연수 중에서 중복 없이 M개를 고른 수열 고른 수열은 오름차순이어야 한다. 입력 첫째 줄에 자연수 N과 M이 주어진다. (1 ≤ M ≤ N ≤ 8) 출력 한 줄에 하나씩 문제의 조건을 만족하는 ... www.acmicpc.net 문제 풀이 이 문제는 조합 문제이다. 15649번 코드 풀이를 기본으로 하여, 오름차순인 수열만 print 되도록 number_list에 추가되는 원소에 조건을 달아주었다. number_list에 아무것도 들어가

백준 15652번 파이썬 (N과 M (4)) [내부링크]

문제 링크 https://www.acmicpc.net/problem/15652 15652번: N과 M (4) 문제 자연수 N과 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오. 1부터 N까지 자연수 중에서 M개를 고른 수열 같은 수를 여러 번 골라도 된다. 고른 수열은 비내림차순이어야 한다. 길이가 K인 수열 A가 A 1 ≤ A 2 ≤ ... ≤ A K-1 ≤ A K 를 만족하면, 비내림차순이라고 한다. 입력 첫째 줄에 자연수 N과 M이 주어진다. (1 ≤ M ≤ N ≤ 8) 출력 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공... www.acmicpc.net 문제 풀이 15650번 문제가 조합 문제였다면, 이 문제는 중복조합 문제이다. 15650번 코드 풀이를 기본으로 하여, i가 number_list에 있는지 없는지를 판단하는 if문을 삭제해 주었다. 중복 가능한 비

백준 9663번 파이썬 (N-Queen) [내부링크]

문제 링크 https://www.acmicpc.net/problem/9663 9663번: N-Queen 9663번 제출 맞힌 사람 숏코딩 재채점 결과 채점 현황 강의 질문 검색 N-Queen 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 10 초 128 MB 74822 36280 23731 47.482% 문제 N-Queen 문제는 크기가 N × N인 체스판 위에 퀸 N개를 서로 공격할 수 없게 놓는 문제이다. N이 주어졌을 때, 퀸을 놓는 방법의 수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 N이 주어진다. (1 ≤ N < 15) 출력 첫째 줄에 퀸 N개를 서로 공격할 수 없게 놓는 경우의 수를 출력한다. 예제 입력 1... www.acmicpc.net 문제 풀이 퀸은 체스에서 가장 강력한 말이다. 퀸의 이동 규칙은 룩과 비숍을 합쳐놓았다고 생각하면 된다. 룩처럼 상하좌우 직선으로 움직일 수도 있고, 비숍처럼 대각선으로도 움직일 수도 있다. row[i] = j는 퀸이

백준 2580번 파이썬 (스도쿠) [내부링크]

문제 링크 https://www.acmicpc.net/problem/2580 2580번: 스도쿠 문제 스도쿠는 18세기 스위스 수학자가 만든 '라틴 사각형'이랑 퍼즐에서 유래한 것으로 현재 많은 인기를 누리고 있다. 이 게임은 아래 그림과 같이 가로, 세로 각각 9개씩 총 81개의 작은 칸으로 이루어진 정사각형 판 위에서 이뤄지는데, 게임 시작 전 일부 칸에는 1부터 9까지의 숫자 중 하나가 쓰여 있다. 나머지 빈 칸을 채우는 방식은 다음과 같다. 각각의 가로줄과 세로줄에는 1부터 9까지의 숫자가 한 번씩만 나타나야 한다. 굵은 선으로 구분되어 있는 3x3 정사각형 안에도 1부터 9까지의 숫자가 한 번씩만 나타나야 한다. 위의... www.acmicpc.net 문제 풀이 print(*list)는 list를 보기 좋게 출력해줄 수 있는 방법 중 하나이다. list를 그냥 출력했을 때 list를 print(*list)로 출력했을 때 ## 값을 matrix로 입력받자 import sys

백준 14888번 파이썬 (연산자 끼워넣기) [내부링크]

문제 링크 https://www.acmicpc.net/problem/14888 14888번: 연산자 끼워넣기 문제 N개의 수로 이루어진 수열 A 1 , A 2 , ..., A N 이 주어진다. 또, 수와 수 사이에 끼워넣을 수 있는 N-1개의 연산자가 주어진다. 연산자는 덧셈(+), 뺄셈(-), 곱셈(×), 나눗셈(÷)으로만 이루어져 있다. 우리는 수와 수 사이에 연산자를 하나씩 넣어서, 수식을 하나 만들 수 있다. 이때, 주어진 수의 순서를 바꾸면 안 된다. 예를 들어, 6개의 수로 이루어진 수열이 1, 2, 3, 4, 5, 6이고, 주어진 연산자가 덧셈(+) 2개, 뺄셈(-) 1개, 곱셈(×) 1개, 나눗셈(÷) 1개인 경우에는 총 6... www.acmicpc.net 문제 풀이 백트래킹을 이용해 연산자 permutation을 해 계산한 결과와 동일한 결과들을 얻었고, 얻은 값들을 모두 result_list에 넣어주어 그 중 최댓값과 최솟값을 print하였다. import sys

백준 14889번 파이썬 (연산자 스타트와 링크) [내부링크]

문제 링크 https://www.acmicpc.net/problem/14889 14889번: 스타트와 링크 문제 오늘은 스타트링크에 다니는 사람들이 모여서 축구를 해보려고 한다. 축구는 평일 오후에 하고 의무 참석도 아니다. 축구를 하기 위해 모인 사람은 총 N명이고 신기하게도 N은 짝수이다. 이제 N/2명으로 이루어진 스타트 팀과 링크 팀으로 사람들을 나눠야 한다. BOJ를 운영하는 회사 답게 사람에게 번호를 1부터 N까지로 배정했고, 아래와 같은 능력치를 조사했다. 능력치 S ij 는 i번 사람과 j번 사람이 같은 팀에 속했을 때, 팀에 더해지는 능력치이다. 팀의 능력치는 팀에 속한 모든 쌍의 능력치 S ij 의 합이다. S ij 는... www.acmicpc.net 문제 풀이 이번에도 역시 백트래킹의 combination을 이용하였다. 전체 N명의 사람 중 N/2명을 뽑는 combination은 https://blog.naver.com/1004hujin/222879989024