\*inflearn 자바스크립트 알고리즘 문제풀이(코딩테스트 대비) 100 이하의 자연수 A, B, C를 입력받아 세 수 중 가장 작은 값을 출력하는 프로그램을 작성하세요.(단, 정렬을 사용하면 안됩니다.)입력설명첫번째 줄에 100이하의 세 자연수가 입력됨출력설명첫번째
길이가 서로 다른 A, B, C 세개의 막대 길이가 주어지면, 이 세막대로 삼각형을 만들 수 있으면 "YES"를 출력하고, 만들 수 없으면 "NO"를 출력한다.입력설명첫번째 줄에 100이하의 서로 다른 A, B, C 막대의 길이가 주어진다. 출력설명첫번째 줄에 "YES
연필 1다스는 12자루입니다. 학생 1인당 연필을 1자루씩 나누어 준다고 할 때, N명이 학생수를 입력하면 필요한 연필의 다스수를 계산하는 프로그램을 작성하세요.입력설명첫번째 줄에 1000 이하의 자연수 N이 입력된다.출력설명첫번째 줄에 필요한 다스 수를 출력합니다.2
자연수 N이 입력되면, 1부터 N까지의 합을 출력하는 프로그램을 작성하세요. 입력설명첫번째 줄에 20이하의 자연수 N이 입력된다.출력설명첫번째 줄에 1부터 N까지의 합을 출력한다.6211055가장 기본적인 방법으로, for문을 활용해서 1~n까지의 합을 구할 수 있다.
7개의 수가 주어지면 그 숫자 중 가장 작은 수를 출력하는 프로그램을 작성하세요.입력설명첫번째 줄에 7개의 수가 주어진다.출력설명첫번째 줄에 가장 작은 값을 출력한다.5 3 7 11 2 15 172min 초기화하는 방법 2가지 방법 1) 인덱스 0부터 for문 최소
7개의 자연수가 주어질 때, 이들 중 홀수인 자연수들을 모두 골라 그 합을 구하고, 고른 홀수들 중 최소값을 찾는 프로그램을 작성하세요.예를 들어 7개의 자연수 12, 77, 38, 41, 53, 92, 85가 주어지면 이들 중 홀수는 77, 41, 53, 58이므로
서울시는 6월 1일부터 교통 혼잡을 막기 위해서 자동차 10부제를 시행한다. 자동차 10부제는 자동차 번호의 일의 자리 숫자와 날짜의 일의 자리 숫자가 일치하면 해당 자동차의 운행을 금지하는 것이다. 예를 들어, 자동차 번호의 일의 자리 숫자가 7이면 7일, 17일,
왕비를 피해 일곱 난쟁이들과 함께 평화롭게 생활하고 있던 백설공주에게 위기가 찾아왔다. 일과를 마치고 돌아온 난쟁이가 일곱 명이 아닌 아홉 명이었던 것이다.아홉 명의 난쟁이는 모두 자신이 "백설 공주와 일곱 난쟁이"의 주인공이라고 주장했다. 뛰어난 수학적 직관력을 가지
대문자로 이루어진 영어단어가 입력되면 단어에 포함된 ‘A'를 모두 ’입력설명첫 번째 줄에 문자열이 입력된다.출력설명첫 번째 줄에 바뀐 단어를 출력한다.BANANABfor of문을 사용한다. 배열이 아닌 문자열에서도 for of문을 사용할 수 있다.let answer =
한 개의 문자열을 입력받고, 특정 문자를 입력받아 해당 특정문자가 입력받은 문자열에 몇 개 존재하는지 알아내는 프로그램을 작성하세요.문자열의 길이는 100을 넘지 않습니다.입력설명첫 줄에 문자열이 주어지고, 두 번째 줄에 문자가 주어진다.출력설명첫 줄에 해당 문자의 개
한 개의 문자열을 입력받아 해당 문자열에 알파벳 대문자가 몇 개 있는지 알아내는 프로그램 을 작성하세요.입력설명첫 줄에 문자열이 입력된다. 문자열의 길이는 100을 넘지 않습니다.출력설명첫 줄에 대문자의 개수를 출력한다.KoreaTimeGood3x.toUpperCase
대문자와 소문자가 같이 존재하는 문자열을 입력받아 대문자로 모두 통일하여 문자열을 출력 하는 프로그램을 작성하세요. [입력설명] 첫 줄에 문자열이 입력된다. 문자열의 길이는 100을 넘지 않습니다. [출력설명] 첫 줄에 대문자로 통일된 문자열이 출력된다. 입력예제 1
대문자와 소문자가 같이 존재하는 문자열을 입력받아 대문자는 소문자로 소문자는 대문자로 변환하여 출력하는 프로그램을 작성하세요.입력설명첫 줄에 문자열이 입력된다. 문자열의 길이는 100을 넘지 않습니다.출력설명첫 줄에 대문자는 소문자로, 소문자는 대문자로 변환된 문자열을
N개의 문자열이 입력되면 그 중 가장 긴 문자열을 출력하는 프로그램을 작성하세요.입력설명첫 줄에 자연수 N이 주어진다.(3<=N<=30)두 번째 줄부터 N개의 문자열이 주어진다. 문자열의 길이는 100을 넘지 않습니다. 각 문자열의 길이는 서로 다릅니다.출력
소문자로 된 단어(문자열)가 입력되면 그 단어의 가운데 문자를 출력하는 프로그램을 작성하세 요. 단 단어의 길이가 짝수일 경우 가운데 2개의 문자를 출력합니다.입력설명첫 줄에 문자열이 입력된다. 문자열의 길이는 100을 넘지 않습니다.출력설명첫 줄에 가운데 문자를 출력
소문자로 된 한개의 문자열이 입력되면 중복된 문자를 제거하고 출력하는 프로그램을 작성하 세요.제거된 문자열의 각 문자는 원래 문자열의 순서를 유지합니다.입력설명첫 줄에 문자열이 입력됩니다.출력설명첫 줄에 중복문자가 제거된 문자열을 출력합니다.ksekksetksets.i
N개의 문자열이 입력되면 중복된 문자열은 제거하고 출력하는 프로그램을 작성하세요. 출력하는 문자열은 원래의 입력순서를 유지합니다.입력설명첫 줄에 자연수 N이 주어진다.(3<=N<=30)두 번째 줄부터 N개의 문자열이 주어진다. 문자열의 길이는 100을 넘지
forEach, map, filter, reduce 메소드: 이 모든 메소드들이 배열의 값 하나씩 돌면서 콜백함수 호출하는것은 같다(js 기본 함수)forEach 메소드: https://www.w3schools.com/jsref/jsref_foreach.asp
2장부터는 1,2차원 탐색 문제들이다. 1차원 탐색은 for문 한번으로, 2차원 탐색으로는 for문 두번으로 자료를 탐색한다. N(1<=N<=100)개의 정수를 입력받아, 자신의 바로 앞 수보다 큰 수만 출력하는 프로그램을 작 성하세요.(첫 번째 수는 무조건
선생님이 N(1<=N<=1000)명의 학생을 일렬로 세웠습니다. 일렬로 서 있는 학생의 키가 앞에 서부터 순서대로 주어질 때, 맨 앞에 서 있는 선생님이 볼 수 있는 학생의 수를 구하는 프로그 램을 작성하세요. (앞에 서 있는 사람들보다 크면 보이고, 작거나
A, B 두 사람이 가위바위보 게임을 합니다. 총 N번의 게임을 하여 A가 이기면 A를 출력하고, B가 이기면 B를 출력합니다. 비길 경우에는 D를 출력합니다.가위, 바위, 보의 정보는 1:가위, 2:바위, 3:보로 정하겠습니다.예를 들어 N=5이면두 사람의 각 회의
OX 문제는 맞거나 틀린 두 경우의 답을 가지는 문제를 말한다. 여러 개의 OX 문제로 만들어진 시험에서 연속적으로 답을 맞히는 경우에는 가산점을 주기 위해서 다음과 같이 점수 계산을 하기 로 하였다. 1번 문제가 맞는 경우에는 1점으로 계산한다. 앞의 문제에 대해서는
N(1<=N<=100)명의 학생의 국어점수가 입력되면 각 학생의 등수를 입력된 순서대로 출력하는 프로그램을 작성하세요.입력설명첫 줄에 N(3<=N<=1000)이 입력되고, 두 번째 줄에 국어점수를 의미하는 N개의 정수가 입력 된다. 같은 점수가 입
5\*5 격자판에 아래와 같이 숫자가 적혀있습니다.NxN의 격자판이 주어지면 각 행의 합, 각 열의 합, 두 대각선의 합 중 가 장 큰 합을 출력합니다.입력설명첫 줄에 자연수 N이 주어진다.(1<=N<=50)두 번째 줄부터 N줄에 걸쳐 각 줄에 N개의 자연수
지도 정보가 N\*N 격자판에 주어집니다. 각 격자에는 그 지역의 높이가 쓰여있습니다. 각 격자 판의 숫자 중 자신의 상하좌우 숫자보다 큰 숫자는 봉우리 지역입니다. 봉우리 지역이 몇 개 있는 지 알아내는 프로그램을 작성하세요.격자의 가장자리는 0으로 초기화 되었다고
3장은 문자열 탐색에 관련된 문제들이다.앞에서 읽을 때나 뒤에서 읽을 때나 같은 문자열을 회문 문자열이라고 합니다.문자열이 입력되면 해당 문자열이 회문 문자열이면 "YES", 회문 문자열이 아니면 “NO"를 출력 하는 프로그램을 작성하세요.단 회문을 검사할 때 대소문자
앞에서 읽을 때나 뒤에서 읽을 때나 같은 문자열을 팰린드롬이라고 합니다.문자열이 입력되면 해당 문자열이 팰린드롬이면 "YES", 아니면 “NO"를 출력하는 프로그램을 작성하세요.단 회문을 검사할 때 알파벳만 가지고 회문을 검사하며, 대소문자를 구분하지 않습니다. 알파벳
문자와 숫자가 섞여있는 문자열이 주어지면 그 중 숫자만 추출하여 그 순서대로 자연수를 만 듭니다.만약 “tge0a1h205er”에서 숫자만 추출하면 0, 1, 2, 0, 5이고 이것을 자연수를 만들면 1205 이 됩니다.추출하여 만들어지는 자연수는 100,000,000
한 개의 문자열 s와 문자 t가 주어지면 문자열 s의 각 문자가 문자 t와 떨어진 최소거리를 출 력하는 프로그램을 작성하세요.입력설명첫 번째 줄에 문자열 s와 문자 t가 주어진다. 문자열과 문자는 소문자로만 주어집니다. 문자열의 길이는 100을 넘지 않는다.출력설명첫
알파벳 대문자로 이루어진 문자열을 입력받아 같은 문자가 연속으로 반복되는 경우 반복되는 문자 바로 오른쪽에 반복 횟수를 표기하는 방법으로 문자열을 압축하는 프로그램을 작성하시 오. 단 반복횟수가 1인 경우 생략합니다.입력설명첫 줄에 문자열이 주어진다. 문자열의 길이는
N개의 자연수가 입력되면 각 자연수의 자릿수의 합을 구하고, 그 합이 최대인 자연수를 출력 하는 프로그램을 작성하세요. 자릿수의 합이 같은 경우 원래 숫자가 큰 숫자를 답으로 합니다. 만약 235 와 1234가 동시에 답이 될 수 있다면 1234를 답으로 출력해야 합니
N개의 자연수가 입력되면 각 자연수를 뒤집은 후 그 뒤집은 수가 소수이면 그 소수를 출력하 는 프로그램을 작성하세요. 예를 들어 32를 뒤집으면 23이고, 23은 소수이다. 그러면 23을 출 력한다. 단 910를 뒤집으면 19로 숫자화 해야 한다. 첫 자리부터의 연속된
현수네 반 선생님은 반 학생들의 수학점수를 향상시키기 위해 멘토링 시스템을 만들려고 합니 다. 멘토링은 멘토(도와주는 학생)와 멘티(도움을 받는 학생)가 한 짝이 되어 멘토가 멘티의 수학공부를 도와주는 것입니다.선생님은 M번의 수학테스트 등수를 가지고 멘토와 멘티를 정
선생님은 올해 졸업하는 반 학생들에게 졸업선물을 주려고 합니다.학생들에게 인터넷 쇼핑몰에서 각자 원하는 상품을 골라 그 상품의 가격과 배송비를 제출하라 고 했습니다. 선생님이 가지고 있는 예산은 한정되어 있습니다.현재 예산으로 최대 몇 명의 학생에게 선물을 사줄 수 있
현수는 1부터 100사이의 자연수가 적힌 N장의 카드를 가지고 있습니다. 같은 숫자의 카드가 여러장 있을 수 있습니다. 현수는 이 중 3장을 뽑아 각 카드에 적힌 수를 합한 값을 기록하려 고 합니다. 3장을 뽑을 수 있는 모든 경우를 기록합니다. 기록한 값 중 K번째로
5장은 효율성에 관련된 챕터이다. 투 포인터 알고리즘, 슬라이딩윈도우, 해쉬를 통해 효율성을 극대화한다. 오름차순으로 정렬이 된 두 배열이 주어지면 두 배열을 오름차순으로 합쳐 출력하는 프로그램 을 작성하세요.입력설명첫 번째 줄에 첫 번째 배열의 크기 N(1<=N
A, B 두 개의 집합이 주어지면 두 집합의 공통 원소를 추출하여 오름차순으로 출력하는 프로 그램을 작성하세요.입력설명첫 번째 줄에 집합 A의 크기 N(1<=N<=30,000)이 주어집니다.두 번째 줄에 N개의 원소가 주어집니다. 원소가 중복되어 주어지지 않
N개의 수로 이루어진 수열이 주어집니다.이 수열에서 연속부분수열의 합이 특정숫자 M이 되는 경우가 몇 번 있는지 구하는 프로그램을 작성하세요.만약 N=8, M=6이고 수열이 다음과 같다면12131112합이 6이 되는 연속부분수열은 {2, 1, 3}, {1, 3, 1,
N개의 수로 이루어진 수열이 주어집니다.이 수열에서 연속부분수열의 합이 특정숫자 M이하가 되는 경우가 몇 번 있는지 구하는 프로그 램을 작성하세요.만약 N=5, M=5이고 수열이 다음과 같다면13123합이 5이하가 되는 연속부분수열은 {1}, {3}, {1}, {2},
현수의 아빠는 제과점을 운영합니다. 현수 아빠는 현수에게 N일 동안의 매출기록을 주고 연속 된 K일 동안의 최대 매출액이 얼마인지 구하라고 했습니다.만약 N=10이고 10일 간의 매출기록이 아래와 같습니다. 이때 K=3이면12 15 11 20 25 10 20 19 13
학급 회장을 뽑는데 후보로 기호 A, B, C, D, E 후보가 등록을 했습니다.투표용지에는 반 학생들이 자기가 선택한 후보의 기호(알파벳)가 쓰여져 있으며 선생님은 그 기호를 발표하고 있습니다.선생님의 발표가 끝난 후 어떤 기호의 후보가 학급 회장이 되었는지 출력하는
Anagram이란 두 문자열이 알파벳의 나열 순서를 다르지만 그 구성이 일치하면 두 단어는 아나그램이라고 합니다.예를 들면 AbaAeCe 와 baeeACA 는 알파벳을 나열 순서는 다르지만 그 구성을 살펴보면 A(2), a(1), b(1), C(1), e(2)로 알파벳
S문자열에서 T문자열과 아나그램이 되는 S의 부분문자열의 개수를 구하는 프로그램을 작성하 세요. 아나그램 판별시 대소문자가 구분됩니다. 부분문자열은 연속된 문자열이어야 합니다.입력설명첫 줄에 첫 번째 S문자열이 입력되고, 두 번째 줄에 T문자열이 입력됩니다.S문자열의
6장은 자료구조(스택 배열, 큐 배열)에 관련된 문제다. 문제 괄호가 입력되면 올바른 괄호이면 “YES", 올바르지 않으면 ”NO"를 출력합니다. (())() 이것은 괄호의 쌍이 올바르게 위치하는 거지만, (()()))은 올바른 괄호가 아니다. [입력설명] 첫 번째
입력된 문자열에서 소괄호 ( ) 사이에 존재하는 모든 문자를 제거하고 남은 문자만 출력하는 프로그램을 작성하세요.입력설명첫 줄에 문자열이 주어진다. 문자열의 길이는 100을 넘지 않는다.출력설명남은 문자만 출력한다.(A(BC)D)EF(G(H)(IJ)K)LM(N)EFLM
게임개발자인 죠르디는 크레인 인형뽑기 기계를 모바일 게임으로 만들려고 합니다. 죠르디는 게임의 재미를 높이기 위해 화면 구성과 규칙을 다음과 같이 게임 로직에 반영하려고 합니다.게임 화면은 1 x 1 크기의 칸들로 이루어진 N x N 크기의 정사각 격자이며 위쪽에는 크
후위연산식이 주어지면 연산한 결과를 출력하는 프로그램을 작성하세요.만약 3(5+2)-9 을 후위연산식으로 표현하면 352+9- 로 표현되며 그 결과는 12입니다.입력설명첫 줄에 후위연산식이 주어집니다. 연산식의 길이는 50을 넘지 않습니다. 식은 1~9의 숫자와 +,
여러 개의 쇠막대기를 레이저로 절단하려고 한다. 효율적인 작업을 위해서 쇠막대기를 아래에 서 위로 겹쳐 놓고, 레이저를 위에서 수직으로 발사하여 쇠막대기들을 자른다. 쇠막대기와 레 이저의 배치는 다음 조건을 만족한다.• 쇠막대기는 자신보다 긴 쇠막대기 위에만 놓일 수
정보 왕국의 이웃 나라 외동딸 공주가 숲속의 괴물에게 잡혀갔습니다.정보 왕국에는 왕자가 N명이 있는데 서로 공주를 구하러 가겠다고 합니다. 정보왕국의 왕은 다음과 같은 방법으로 공주를 구하러 갈 왕자를 결정하기로 했습니다.왕은 왕자들을 나이 순으로 1번부터 N번까지 차
현수는 1년 과정의 수업계획을 짜야 합니다.수업중에는 필수과목이 있습니다. 이 필수과목은 반드시 이수해야 하며, 그 순서도 정해져 있 습니다.만약 총 과목이 A, B, C, D, E, F, G가 있고, 여기서 필수과목이 CBA로 주어지면 필수과목은 C, B, A과목이며
7장은 정렬과 그리디, 결정 알고리즘에 관련된 챕터다. N개의 숫자가 입력되면 오름차순으로 정렬하여 출력하는 프로그램을 작성하세요. 정렬하는 방법은 선택정렬입니다.입력설명첫 번째 줄에 자연수 N(1<=N<=100)이 주어집니다.두 번째 줄에 N개의 자연수가
N개이 숫자가 입력되면 오름차순으로 정렬하여 출력하는 프로그램을 작성하세요. 정렬하는 방법은 버블정렬입니다.입력설명첫 번째 줄에 자연수 N(1<=N<=100)이 주어집니다.두 번째 줄에 N개의 자연수가 공백을 사이에 두고 입력됩니다. 각 자연수는 정수형 범위
N개의 정수가 입력되면 당신은 입력된 값을 정렬해야 한다.음의 정수는 앞쪽에 양의정수는 뒷쪽에 있어야 한다. 또한 양의정수와 음의정수의 순서에는 변함이 없어야 한다.입력설명첫 번째 줄에 정수 N(5<=N<=100)이 주어지고, 그 다음 줄부터 음수를 포함한
N개의 숫자가 입력되면 오름차순으로 정렬하여 출력하는 프로그램을 작성하세요. 정렬하는 방법은 삽입정렬입니다.입력설명첫 번째 줄에 자연수 N(1<=N<=100)이 주어집니다.두 번째 줄에 N개의 자연수가 공백을 사이에 두고 입력됩니다. 각 자연수는 정수형 범위
삽입정렬 응용
새 학기가 시작되었습니다. 현수는 새 짝꿍을 만나 너무 신이 났습니다.현수네 반에는 N명의 학생들이 있습니다.선생님은 반 학생들에게 반 번호를 정해 주기 위해 운동장에 반 학생들을 키가 가장 작은 학 생부터 일렬로 키순으로 세웠습니다. 제일 앞에 가장 작은 학생부터 반
N개의 평면상의 좌표(x, y)가 주어지면 모든 좌표를 오름차순으로 정렬하는 프로그램을 작성하 세요. 정렬기준은 먼저 x값의 의해서 정렬하고, x값이 같을 경우 y값에 의해 정렬합니다.입력설명첫째 줄에 좌표의 개수인 N(3<=N<=100,000)이 주어집니다
한 개의 회의실이 있는데 이를 사용하고자 하는 n개의 회의들에 대하여 회의실 사용표를 만들 려고 한다. 각 회의에 대해 시작시간과 끝나는 시간이 주어져 있고, 각 회의가 겹치지 않게 하 면서 회의실을 사용할 수 있는 최대수의 회의를 찾아라. 단, 회의는 한번 시작하면
현수는 다음 달에 결혼을 합니다.현수는 결혼식 피로연을 장소를 빌려 3일간 쉬지 않고 하려고 합니다.피로연에 참석하는 친구들 N명의 참석하는 시간정보를 현수는 친구들에게 미리 요구했습니다. 각 친구들은 자신이 몇 시에 도착해서 몇 시에 떠날 것인지 현수에게 알려주었습니
임의의 N개의 숫자가 입력으로 주어집니다. N개의 수를 오름차순으로 정렬한 다음 N개의 수 중 한 개의 수인 M이 주어지면 이분검색으로 M이 정렬된 상태에서 몇 번째에 있는지 구하는 프로그램을 작성하세요. 단 중복값은 존재하지 않습니다.입력설명첫 줄에 한 줄에 자연수
지니레코드에서는 불세출의 가수 조영필의 라이브 동영상을 DVD로 만들어 판매하려 한다. DVD에는 총 N개의 곡이 들어가는데, DVD에 녹화할 때에는 라이브에서의 순서가 그대로 유지 되어야 한다. 순서가 바뀌는 것을 우리의 가수 조영필씨가 매우 싫어한다. 즉, 1번 노
N개의 마구간이 수직선상에 있습니다. 각 마구간은 x1, x2, x3, ......, xN의 좌표를 가지며, 마 구간간에 좌표가 중복되는 일은 없습니다.현수는 C마리의 말을 가지고 있는데, 이 말들은 서로 가까이 있는 것을 좋아하지 않습니다. 각 마구간에는 한 마리의
8장과 9장은 각각 DFS, BFS에 대한 문제들이다. 생각보다 많이 헤맸던 챕터였기 때문에, 처음부터 이론에 대한 공부를 다시 하느라 시간이 많이 걸렸다. 다행히 이론을 다시 공부하고나니, 문제들이 이해되기 시작했다...! 헷갈리는 DFS, BFS 개념을 정리해보자.
8장은 DFS를 활용한 문제이다. DFS는 스택의 원리를 사용해서 풀 수 있는 알고리즘이다. 재귀함수가 스택 자료구조 원리를 사용하기 때문에, 주로 DFS에서는 스택을 따로 생성하지 않고 재귀함수로 문제를 해결한다. 자연수 N이 입력되면 재귀함수를 이용하여 1부터 N까
10진수 N이 입력되면 2진수로 변환하여 출력하는 프로그램을 작성하세요. 단 재귀함수를 이용 해서 출력해야 합니다.입력설명첫 번째 줄에 10진수 N(1<=N<=1,000)이 주어집니다.출력설명첫 번째 줄에 이진수를 출력하세요.11101110진수를 2진수로 구
아래 그림과 같은 이진트리를 전위순회와 후위순회를 연습해보세요.전위순회 출력 : 1 2 4 5 3 6 7 중위순회 출력 : 4 2 5 1 6 3 7 후위순회 출력 : 4 5 2 6 7 3 1트리의 구조 분석여기서 왼쪽자식은 부모노드x2이고, 오른쪽자식은 부모노드x2+1
자연수 N이 주어지면 1부터 N까지의 원소를 갖는 집합의 부분집합을 모두 출력하는 프로그램 을 작성하세요.입력설명첫 번째 줄에 자연수 N(1<=N<=10)이 주어집니다.출력설명첫 번째 줄부터 각 줄에 하나씩 부분집합을 아래와 출력예제와 같은 순서로 출력한다.
N개의 원소로 구성된 자연수 집합이 주어지면, 이 집합을 두 개의 부분집합으로 나누었을 때 두 부분집합의 원소의 합이 서로 같은 경우가 존재하면 “YES"를 출력하고, 그렇지 않으면 ”NO"를 출력하는 프로그램을 작성하세요.둘로 나뉘는 두 부분집합은 서로소 집합이며,
철수는 그의 바둑이들을 데리고 시장에 가려고 한다. 그런데 그의 트럭은 C킬로그램 넘게 태 울수가 없다. 철수는 C를 넘지 않으면서 그의 바둑이들을 가장 무겁게 태우고 싶다.N마리의 바둑이와 각 바둑이의 무게 W가 주어지면, 철수가 트럭에 태울 수 있는 가장 무거운 무
이번 정보올림피아드대회에서 좋은 성적을 내기 위하여 현수는 선생님이 주신 N개의 문제를 풀려고 합니다. 각 문제는 그것을 풀었을 때 얻는 점수와 푸는데 걸리는 시간이 주어지게 됩 니다. 제한시간 M안에 N개의 문제 중 최대점수를 얻을 수 있도록 해야 합니다. (해당문제
1부터 N까지 번호가 적힌 구슬이 있습니다. 이 중 중복을 허락하여 M번을 뽑아 일렬로 나열 하는 방법을 모두 출력합니다.입력설명첫 번째 줄에 자연수 N(3<=N<=10)과 M(2<=M<=N) 이 주어집니다.출력설명첫 번째 줄에 결과를 출력합니다.
다음과 같이 여러 단위의 동전들이 주어져 있을때 거스름돈을 가장 적은 수의 동전으로 교환 해주려면 어떻게 주면 되는가? 각 단위의 동전은 무한정 쓸 수 있다.입력설명첫 번째 줄에는 동전의 종류개수 N(1<=N<=12)이 주어진다. 두 번째 줄에는 N개의 동전
10이하의 N개의 자연수가 주어지면 이 중 M개를 뽑아 일렬로 나열하는 방법을 모두 출력합 니다.입력설명첫 번째 줄에 자연수 N(3<=N<=10)과 M(2<=M<=N) 이 주어집니다. 두 번째 줄에 N개의 자연수가 오름차순으로 주어집니다.출력설명첫
자연수 N을 입력하면 N!값을 구하세요. N! = n(n-1)(n-2).....21입니다. 만약 N=5라면 5!=5432\*1=120입니다.입력설명첫째 줄에 자연수 N(3<=n<=10)이 입력됩니다.출력설명첫째 줄에 N팩토리얼 값을 출력합니다.5120문제 풀
조합은 위의 공식으로 계산합니다. 하지만 여러분은 이 공식을 쓰지않고 다음공식을 사용하여 재귀를 이용해 조합수를 구해주는 프로그램을 작성하세요.입력설명첫째 줄에 자연수 n(3<=n<=33)과 r(0<=r<=n)이 입력됩니다.출력설명첫째 줄에 조합수
이 문제는 순열(8-10), 조합의 경우수(8-12)의 응용문제이다. 이해가 안되면 해당 챕터를 다시보고오자!가장 윗줄에 1부터 N까지의 숫자가 한 개씩 적혀 있다. 그리고 둘째 줄부터 차례대로 파스칼 의 삼각형처럼 위의 두개를 더한 값이 저장되게 된다. 예를 들어 N
1부터N까지번호가적힌구슬이있습니다.이중 M개를뽑는방법의수를출력하는프로그 램을 작성하세요.입력설명첫 번째 줄에 자연수 N(3<=N<=10)과 M(2<=M<=N) 이 주어집니다.출력설명첫 번째 줄에 결과를 출력합니다. 맨 마지막 총 경우의 수를 출력합
N개의 정수가 주어지면 그 숫자들 중 K개를 뽑는 조합의 합이 임의의 정수 M의 배수인 개수 는 몇 개가 있는지 출력하는 프로그램을 작성하세요.예를 들면 5개의 숫자 2 4 5 8 12가 주어지고, 3개를 뽑은 조합의 합이 6의 배수인 조합을 찾으면 4+8+12 2+4
9장은 그래프와 탐색을 DFS, BFS로 구현하는 문제들이다. (DFS, BFS의 개념은 앞 챕터 참고!) 그래프는 V(노드), E(엣지)의 집합이다. 따라서 G(V, E)로 표현하기도 한다. 여기서 E(엣지)란, 노드와 노드를 연결한 선이다. 그래프 이론에서 '인접행
방향그래프가 주어지면 1번 정점에서 N번 정점으로 가는 모든 경로의 가지 수를 출력하는 프로그램을 작성하세요. 아래 그래프에서 1번 정점에서 5번 정점으로 가는 가지 수는12345125 1342513451425 145총 6 가지입니다.입력설명첫째 줄에는 정점의 수 N(
앞의 문제(9-2)와 동일 앞 문제에서 사용했던 인접행렬은, 시간복잡도가 높고 메모리도 많이 차지한다. 그러나 인접리스트는 시간복잡도가 낮으며 메모리도 많이 차지하지 않는다. 따라서 노드의 개수가 많아지면 인접리스트를 사용하는것이 좋다. 인접리스트의 원리는 다음과 같다
7\*7 격자판 미로를 탈출하는 경로의 가지수를 출력하는 프로그램을 작성하세요. 출발점은 격 자의 (1, 1) 좌표이고, 탈출 도착점은 (7, 7)좌표이다. 격자판의 1은 벽이고, 0은 통로이다. 격 자판의 움직임은 상하좌우로만 움직인다. 미로가 다음과 같다면위의 지도
이 문제는 BFS(넓이우선탐색)의 개념을 알아보는 문제이다. BFS의 개념은 앞장에서 정리했으니 참고하기! 간단히 BFS에 대한 설명을 하자면, 큐를 사용한다(FIFO)level을 사용한다.최단거리를 구할 때 사용한다.(1 level에서 가까운 순서대로 출력)상태트리를
현수는 송아지를 잃어버렸다. 다행히 송아지에는 위치추적기가 달려 있다. 현수의 위치와 송아 지의 위치가 수직선상의 좌표 점으로 주어지면 현수는 현재 위치에서 송아지의 위치까지 다음 과 같은 방법으로 이동한다. 송아지는 움직이지 않고 제자리에 있다.현수는 스카이 콩콩을
N\*N의 섬나라 아일랜드의 지도가 격자판의 정보로 주어집니다. 각 섬은 1로 표시되어 상하좌 우와 대각선으로 연결되어 있으며, 0은 바다입니다. 섬나라 아일랜드에 몇 개의 섬이 있는지 구하는 프로그램을 작성하세요.만약 위와 같다면입력설명첫 번째 줄에 자연수 N(3&l
앞의 문제(9-7)와 동일 9-7과 같은 문제를 BFS를 활용해서 풀이한다. 원리는 다음과 같다.
10장은 Dynamic Programming(동적계획법)에 대한 문제들이다.철수는 계단을 오를 때 한 번에 한 계단 또는 두 계단씩 올라간다. 만약 총 4계단을 오른다면 그 방법의 수는1+1+1+1, 1+1+2, 1+2+1, 2+1+1, 2+2 로 5가지이다.그렇다면
철수는 학교에 가는데 개울을 만났습니다. 개울은 N개의 돌로 다리를 만들어 놓았습니다. 철수는 돌 다리를 건널 때 한 번에 한 칸 또는 두 칸씩 건너뛰면서 돌다리를 건널 수 있습니다. 철수가 개울을 건너는 방법은 몇 가지일까요?입력설명첫째 줄은 돌의 개수인 자연수 N(
N개의 자연수로 이루어진 수열이 주어졌을 때, 그 중에서 가장 길게 증가하는(작은 수에서 큰 수로) 원소들의 집합을 찾는 프로그램을 작성하라. 예를 들어, 원소가 2, 7, 5, 8, 6, 4, 7, 12, 3 이면 가장 길게 증가하도록 원소들을 차례대로 뽑아내면 2,
다음과 같이 여러 단위의 동전들이 주어져 있을때 거스름돈을 가장 적은 수의 동전으로 교환 해주려면 어떻게 주면 되는가? 각 단위의 동전은 무한정 쓸 수 있다.입력설명첫 번째 줄에는 동전의 종류개수 N(1<=N<=12)이 주어진다. 두 번째 줄에는 N개의 동전
이번 정보올림피아드대회에서 좋은 성적을 내기 위하여 현수는 선생님이 주신 N개의 문제를 풀려고 합니다. 각 문제는 그것을 풀었을 때 얻는 점수와 푸는데 걸리는 시간이 주어지게 됩 니다. 제한시간 M안에 N개의 문제 중 최대점수를 얻을 수 있도록 해야 합니다. (해당문제