baekjoon 2143 - 두 배열의 합 이해 문제에서는 두 배열의 합을 더해서, T가 되는 모든 부 배열의 쌍의 개수를 구하는 프로그램을 작성하려고 하였다. 이는 순차적으로 탐색을 하며, 완전 탐색을 해야하는 상황이다. 배열의 합 : A[i] + ... + A[j] 그 사이의 합을 구하는 문제이다. 순차적으로 탐색을 하며, 사이 구간의 합을 구할 때는 딕셔너리를 사용하면 된다. 이와 같은 문제를 풀 때는, 현재 A의 합들을 딕셔너... Binary SearchplzrunbaekjoonBinary Search [알고리즘] Java / 백준 / 끝나지 않는 파티 / 11265 [알고리즘] Java / 백준 / 끝나지 않는 파티 / 11265 문제 접근 방식 플로이드 와샬 알고리즘으로 각각의 파티장들을 서로 연결하는 가장 짧은 거리를 구하고 이용객의 정보를 받아 해당 거리를 시간 안에 갈 수 있는지 없는지를 출력한다. 코드... baekjoonJava플로이드-와샬Java 2675 len()사용에 유의하자 풀이 공백으로 구분된 단어를 입력받아 리스트에 대입 리스트의 길이 측정 리스트의 길이 출력 입력 첫 줄에 영어 대소문자와 공백으로 이루어진 문자열 길이는 1,000,000을 넘지 않는다. 단어는 공백 한 개로 구분 공백이 연속해서 나오는 경우는 없다. 문자열은 공백으로 시작하거나 끝날 수 있다. 출력 첫째 줄에 단어의 개수를 출력한다.... python단어의 개수baekjoonbaekjoon 백준 Baekjoon 2490번 윷놀이 - JAVA 문제 우리나라 고유의 윷놀이는 네 개의 윷짝을 던져서 배(0)와 등(1)이 나오는 숫자를 세어 도, 개, 걸, 윷, 모를 결정한다. 네 개 윷짝을 던져서 나온 각 윷짝의 배 혹은 등 정보가 주어질 때 도(배 한 개, 등 세 개), 개(배 두 개, 등 두 개), 걸(배 세 개, 등 한 개), 윷(배 네 개), 모(등 네 개) 중 어떤 것인지를 결정하는 프로그램을 작성하라. 입력 첫째 줄부터 셋... baekjoonJavaJava 백준 Baekjoon 2562번 최댓값 - JAVA 문제 9개의 서로 다른 자연수가 주어질 때, 이들 중 최댓값을 찾고 그 최댓값이 몇 번째 수인지를 구하는 프로그램을 작성하시오. 예를 들어, 서로 다른 9개의 자연수 이 주어지면, 이들 중 최댓값은 85이고, 이 값은 8번째 수이다. 입력 첫째 줄부터 아홉 번째 줄까지 한 줄에 하나의 자연수가 주어진다. 주어지는 자연수는 100 보다 작다. 출력 첫째 줄에 최댓값을 출력하고, 둘째 줄에 최댓... baekjoonJavaJava 백준 Baekjoon 2566번 최댓값 - JAVA 문제 <그림 1>과 같이 9×9 격자판에 쓰여진 81개의 자연수 또는 0이 주어질 때, 이들 중 최댓값을 찾고 그 최댓값이 몇 행 몇 열에 위치한 수인지 구하는 프로그램을 작성하시오. 예를 들어, 다음과 같이 81개의 수가 주어지면 1열 2열 3열 4열 5열 6열 7열 8열 9열 1행 3 23 85 34 17 74 25 52 65 2행 10 7 39 42 88 52 14 72 63 3행 87... baekjoonJavaJava 백준 Baekjoon 2576번 홀수 - JAVA 문제 7개의 자연수가 주어질 때, 이들 중 홀수인 자연수들을 모두 골라 그 합을 구하고, 고른 홀수들 중 최솟값을 찾는 프로그램을 작성하시오. 예를 들어, 7개의 자연수 12, 77, 38, 41, 53, 92, 85가 주어지면 이들 중 홀수는 77, 41, 53, 85이므로 그 합은 이 되고, 이므로 홀수들 중 최솟값은 41이 된다. 입력 입력의 첫째 줄부터 일곱 번째 줄까지 한 줄에 하나... baekjoonJavaJava 백준 Baekjoon 2739번 구구단 - JAVA 문제 N을 입력받은 뒤, 구구단 N단을 출력하는 프로그램을 작성하시오. 출력 형식에 맞춰서 출력하면 된다. 입력 첫째 줄에 N이 주어진다. N은 1보다 크거나 같고, 9보다 작거나 같다. 출력 출력형식과 같게 N1부터 N9까지 출력한다. 예제 입력 1 예제 출력 1 설명... baekjoonJavaJava 백준 Baekjoon 2743번 단어 길이 재기 - JAVA 문제 알파벳으로만 이루어진 단어를 입력받아, 그 길이를 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 영어 소문자와 대문자로만 이루어진 단어가 주어진다. 단어의 길이는 최대 100이다. 출력 첫째 줄에 입력으로 주어진 단어의 길이를 출력한다. 예제 입력 1 예제 출력 1 public class Main { public static void main(String[] args) throws I... baekjoonJavaJava 백준 Baekjoon 2744번 대소문자 바꾸기 - JAVA 문제 영어 소문자와 대문자로 이루어진 단어를 입력받은 뒤, 대문자는 소문자로, 소문자는 대문자로 바꾸어 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 영어 소문자와 대문자로만 이루어진 단어가 주어진다. 단어의 길이는 최대 100이다. 출력 첫째 줄에 입력으로 주어진 단어에서 대문자는 소문자로, 소문자는 대문자로 바꾼 단어를 출력한다. 예제 입력 1 예제 출력 1 설명 처음에 작성된 정답이 ... baekjoonJavaJava 백준 Baekjoon 2798번 블랙잭 - JAVA 문제 카지노에서 제일 인기 있는 게임 블랙잭의 규칙은 상당히 쉽다. 카드의 합이 21을 넘지 않는 한도 내에서, 카드의 합을 최대한 크게 만드는 게임이다. 블랙잭은 카지노마다 다양한 규정이 있다. 한국 최고의 블랙잭 고수 김정인은 새로운 블랙잭 규칙을 만들어 상근, 창영이와 게임하려고 한다. 김정인 버전의 블랙잭에서 각 카드에는 양의 정수가 쓰여 있다. 그 다음, 딜러는 N장의 카드를 모두 ... baekjoonJavaJava 백준 Baekjoon 2822번 점수 계산 - JAVA 문제 상근이는 퀴즈쇼의 PD이다. 이 퀴즈쇼의 참가자는 총 8개 문제를 푼다. 참가자는 각 문제를 풀고, 그 문제를 풀었을 때 얻는 점수는 문제를 풀기 시작한 시간부터 경과한 시간과 난이도로 결정한다. 문제를 풀지 못한 경우에는 0점을 받는다. 참가자의 총 점수는 가장 높은 점수 5개의 합이다. 상근이는 잠시 여자친구와 전화 통화를 하느라 참가자의 점수를 계산하지 않고 있었다. 참가자의 8개... baekjoonJavaJava 백준 Baekjoon 2846번 오르막길 - JAVA 문제 상근이는 자전거를 타고 등교한다. 자전거 길은 오르막길, 내리막길, 평지로 이루어져 있다. 상근이는 개강 첫 날 자전거를 타고 가면서 일정 거리마다 높이를 측정했다. 상근이는 가장 큰 오르막길의 크기를 구하려고 한다. 측정한 높이는 길이가 N인 수열로 나타낼 수 있다. 여기서 오르막길은 적어도 2개의 수로 이루어진 높이가 증가하는 부분 수열이다. 오르막길의 크기는 부분 수열의 첫 번째 ... baekjoonJavaJava 백준 Baekjoon 2857번 FBI - JAVA 문제 5명의 요원 중 FBI 요원을 찾는 프로그램을 작성하시오. FBI요원은 요원의 첩보원명에 FBI가 들어있다. 입력 5개 줄에 요원의 첩보원명이 주어진다. 첩보원명은 알파벳 대문자, 숫자 0~9, 대시 (-)로만 이루어져 있으며, 최대 10글자이다. 출력 첫째 줄에 FBI 요원을 출력한다. 이때, 해당하는 요원이 몇 번째 입력인지를 공백으로 구분하여 출력해야 하며, 오름차순으로 출력해야 ... baekjoonJavaJava [알고리즘] Java / 백준 / 다각형의 면적 / 2166 [알고리즘] Java / 백준 / 다각형의 면적 / 2166 문제 접근 방식 ccw로 다각형을 이루는 삼각형들의 넓이 합을 구한다 ( 입력받은 점들이 반시계방향일 경우 양수, 시계방향일 경우 음수) 이 때 2로 나누지 않는다. 현재 합이 짝수이면 반올림 받지 않은 것이므로 2로 나눈 후문자열 “.0”을 더하고 현재 합이 홀수이면 반올림 받은 것이므로 2로 나눈 후“0.5”를 더한다. 코드... mathbaekjoonJavaJava [알고리즘] Java / 백준 / 도시 분할 계획 / 1647 [알고리즘] Java / 백준 / 도시 분할 계획 / 1647 문제 접근 방식 최소 스패닝 트리를 구하면서 트리를 구성하는 간선 비용의 합을 구한 후 여기에 간선의 최댓값을 빼면 두 마을을 분리하는 길의 유지비 최솟값을 구할 수 있다. 최소 스패닝 트리를 구하는 방법은 kruskal과 prim이 있는데 kruskal은 익숙해서 prim으로 구현하였다. 코드... MSTprimbaekjoonJavaJava [Baekjoon] 2225번 합분해.cpp DP는 풀어도 풀어도 어렵다. 조금씩 익숙해지는 것 같긴 한데 여전히 어렵다.. 이번 문제는 '몇 개의 숫자'를 이용하여 '어떤 숫자'를 만드는 경우의 수를 표현하는 문제이다. 이를 위해 이 차원 배열을 사용하였다. dp[num][count] 형태로, num은 만들어야 하는 숫자, count는 num을 만드는 데 사용된 숫자의 수이다. 즉, dp[4][k]라면 '4 이하의 숫자 k개를 이용하... baekjoonbaekjoon [알고리즘] Java / 백준 / 1로 만들기 2 / 12852 [알고리즘] Java / 백준 / 1로 만들기 2 / 12852 문제 접근 방식 3가지 연산을 통해 나온 결과를 k로 가정할 때 N부터 k까지의 거리 최솟값을 구하기 위해 dp를 활용한다. dp에서의 점화식은 다음과 같다 또한 dp에 최소 거리가 갱신될 때 해당 수의 부모를 parent 배열에 저장하여 추후에 1부터 역탐색하여 1로 만드는 방법에 포함된 수를 얻는다. 코드... DPbaekjoonJavaDFSDFS 백준 Baekjoon 2947번 나무 조각 - JAVA 문제 동혁이는 나무 조각을 5개 가지고 있다. 나무 조각에는 1부터 5까지 숫자 중 하나가 쓰여져 있다. 또, 모든 숫자는 다섯 조각 중 하나에만 쓰여 있다. 동혁이는 나무 조각을 다음과 같은 과정을 거쳐서 1, 2, 3, 4, 5 순서로 만들려고 한다. 첫 번째 조각의 수가 두 번째 수보다 크다면, 둘의 위치를 서로 바꾼다. 두 번째 조각의 수가 세 번째 수보다 크다면, 둘의 위치를 서로 ... baekjoonJavaJava 백준 Baekjoon 2953번 나는 요리사다 - JAVA 문제 입력 출력 첫째 줄에 우승자의 번호와 그가 얻은 점수를 출력한다. 예제 입력 1 예제 출력 1 예제 입력 2 예제 출력 2... baekjoonJavaJava [알고리즘] Java / 백준 / LCS 2 / 9252 [알고리즘] Java / 백준 / LCS 2 / 9252 문제 접근 방식 LCS dp 테이블의 점화식은 다음과 같다. LCS dp 테이블을 만들었다면 맨 오른쪽 아래 값이 LCS의 길이가 된다. 또한 공통 부분수열을 구하는 방법은 다음과 같다. LCS배열의 가장 오른쪽 아래에서 시작한다. 결과값을 저장할 문자열 answer를 준비한다. dp[i-1][j] 와 dp[i][j-1]중 현재 값과 ... LCSbaekjoonJavaJava [Baekjoon] #23881 알고리즘 수업 - 선택 정렬1 💬 아이디어 문제의 제목에서도 확인할 수 있듯이 선택 정렬의 개념을 응용하여 해답을 구하는 문제이다. 교환이 발생하는 과정을 확인해야 하기 때문에 교환 횟수를 체크할 변수 cnt를 선언하고, 최종적으로 출력될 값 answer를 선언한다. 루프를 진행하면서 원소의 자리 교체가 이루어지는 경우 cnt + 1을 하여 cnt와 교환 횟수 K가 같아지는 시점에 answer의 값을 변경한다. 💬 알고리... 정렬baekjoonbaekjoon [Baekjoon] #23968 알고리즘 수업 - 버블 정렬1 💬 아이디어 버블 정렬의 기본적인 개념을 이용한다. 먼저, 원소가 교환되는 과정을 살펴보기 위해 교환 횟수를 의미하는 변수 cnt를 선언하고, 정답으로 출력된 answer를 선언한다. 다음으로 배열의 원소 개수만큼 루프문을 실행하여 배열 내의 연속한 값들의 크기를 비교한다. 두 개의 원소가 크기의 내림차순으로 존재한다면, 자리를 상호 교환하고 cnt에 1을 더해준다. cnt가 교환 횟수 K와... 정렬baekjoonbaekjoon 백준 Baekjoon 2789번 유학 금지 - JAVA 문제 아주 멀리 떨어져 있는 작은 나라가 있다. 이 나라에서 가장 공부를 잘하는 학생들은 모두 다른 나라로 유학을 간다. 정부는 최고의 학생들이 자꾸 유학을 가는 이유를 찾으려고 했다. 하지만, 학생들의 이유가 모두 달랐기 때문에 정확한 이유를 찾을 수 없었다. 정부의 고위직은 뛰어난 학생들이 자꾸 유학을 가는 현상을 매우 불쾌해 했다. 가장 많은 학생들이 유학을 가는 대학교는 영국의 캠브리... baekjoonJavaJava 백준 Baekjoon 2754번 학점계산 - JAVA 문제 어떤 사람의 C언어 성적이 주어졌을 때, 평점은 몇 점인지 출력하는 프로그램을 작성하시오. B+: 3.3, B0: 3.0, B-: 2.7 C+: 2.3, C0: 2.0, C-: 1.7 D+: 1.3, D0: 1.0, D-: 0.7 F: 0.0 입력 첫째 줄에 C언어 성적이 주어진다. 성적은 문제에서 설명한 13가지 중 하나이다. 출력 첫째 줄에 C언어 평점을 출력한다. 예제 입력 1 예... baekjoonJavaJava 백준 Baekjoon 1001번 A-B - JAVA 문제 두 정수 A와 B를 입력받은 다음, A-B를 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 A와 B가 주어진다. (0 < A, B < 10) 출력 첫째 줄에 A-B를 출력한다. 예제 입력 1 예제 출력 1 설명 scanner를 이용하여 값 입력 후 뺄셈 nextInt 를 통해서 받아들이는 값 숫자로 인식... baekjoonJavaJava 백준 Baekjoon 2475번 검증수 - JAVA 문제 컴퓨터를 제조하는 회사인 KOI 전자에서는 제조하는 컴퓨터마다 6자리의 고유번호를 매긴다. 고유번호의 처음 5자리에는 00000부터 99999까지의 수 중 하나가 주어지며 6번째 자리에는 검증수가 들어간다. 검증수는 고유번호의 처음 5자리에 들어가는 5개의 숫자를 각각 제곱한 수의 합을 10으로 나눈 나머지이다. 예를 들어 고유번호의 처음 5자리의 숫자들이 04256이면, 각 숫자를 제... baekjoonJavaJava 백준 Baekjoon 1152번 단어의 개수 - JAVA 문제 영어 대소문자와 공백으로 이루어진 문자열이 주어진다. 이 문자열에는 몇 개의 단어가 있을까? 이를 구하는 프로그램을 작성하시오. 단, 한 단어가 여러 번 등장하면 등장한 횟수만큼 모두 세어야 한다. 입력 첫 줄에 영어 대소문자와 공백으로 이루어진 문자열이 주어진다. 이 문자열의 길이는 1,000,000을 넘지 않는다. 단어는 공백 한 개로 구분되며, 공백이 연속해서 나오는 경우는 없다.... baekjoonJavaJava 백준 Baekjoon 1834번 나머지와 몫이 같은 수 - JAVA **문제 N으로 나누었을 때 나머지와 몫이 같은 모든 자연수의 합을 구하는 프로그램을 작성하시오. 예를 들어 N=3일 때, 나머지와 몫이 모두 같은 자연수는 4와 8 두 개가 있으므로, 그 합은 12이다. 입력 첫째 줄에 2,000,000 이하의 자연수 N이 주어진다. 출력 첫 줄에 구하고자 하는 수를 출력한다. 예제 입력 1 예제 출력 1 예제 입력 2 예제 출력 2 설명 처음에 이해가 잘... baekjoonJavaJava 이전 기사 보기
2143 - 두 배열의 합 이해 문제에서는 두 배열의 합을 더해서, T가 되는 모든 부 배열의 쌍의 개수를 구하는 프로그램을 작성하려고 하였다. 이는 순차적으로 탐색을 하며, 완전 탐색을 해야하는 상황이다. 배열의 합 : A[i] + ... + A[j] 그 사이의 합을 구하는 문제이다. 순차적으로 탐색을 하며, 사이 구간의 합을 구할 때는 딕셔너리를 사용하면 된다. 이와 같은 문제를 풀 때는, 현재 A의 합들을 딕셔너... Binary SearchplzrunbaekjoonBinary Search [알고리즘] Java / 백준 / 끝나지 않는 파티 / 11265 [알고리즘] Java / 백준 / 끝나지 않는 파티 / 11265 문제 접근 방식 플로이드 와샬 알고리즘으로 각각의 파티장들을 서로 연결하는 가장 짧은 거리를 구하고 이용객의 정보를 받아 해당 거리를 시간 안에 갈 수 있는지 없는지를 출력한다. 코드... baekjoonJava플로이드-와샬Java 2675 len()사용에 유의하자 풀이 공백으로 구분된 단어를 입력받아 리스트에 대입 리스트의 길이 측정 리스트의 길이 출력 입력 첫 줄에 영어 대소문자와 공백으로 이루어진 문자열 길이는 1,000,000을 넘지 않는다. 단어는 공백 한 개로 구분 공백이 연속해서 나오는 경우는 없다. 문자열은 공백으로 시작하거나 끝날 수 있다. 출력 첫째 줄에 단어의 개수를 출력한다.... python단어의 개수baekjoonbaekjoon 백준 Baekjoon 2490번 윷놀이 - JAVA 문제 우리나라 고유의 윷놀이는 네 개의 윷짝을 던져서 배(0)와 등(1)이 나오는 숫자를 세어 도, 개, 걸, 윷, 모를 결정한다. 네 개 윷짝을 던져서 나온 각 윷짝의 배 혹은 등 정보가 주어질 때 도(배 한 개, 등 세 개), 개(배 두 개, 등 두 개), 걸(배 세 개, 등 한 개), 윷(배 네 개), 모(등 네 개) 중 어떤 것인지를 결정하는 프로그램을 작성하라. 입력 첫째 줄부터 셋... baekjoonJavaJava 백준 Baekjoon 2562번 최댓값 - JAVA 문제 9개의 서로 다른 자연수가 주어질 때, 이들 중 최댓값을 찾고 그 최댓값이 몇 번째 수인지를 구하는 프로그램을 작성하시오. 예를 들어, 서로 다른 9개의 자연수 이 주어지면, 이들 중 최댓값은 85이고, 이 값은 8번째 수이다. 입력 첫째 줄부터 아홉 번째 줄까지 한 줄에 하나의 자연수가 주어진다. 주어지는 자연수는 100 보다 작다. 출력 첫째 줄에 최댓값을 출력하고, 둘째 줄에 최댓... baekjoonJavaJava 백준 Baekjoon 2566번 최댓값 - JAVA 문제 <그림 1>과 같이 9×9 격자판에 쓰여진 81개의 자연수 또는 0이 주어질 때, 이들 중 최댓값을 찾고 그 최댓값이 몇 행 몇 열에 위치한 수인지 구하는 프로그램을 작성하시오. 예를 들어, 다음과 같이 81개의 수가 주어지면 1열 2열 3열 4열 5열 6열 7열 8열 9열 1행 3 23 85 34 17 74 25 52 65 2행 10 7 39 42 88 52 14 72 63 3행 87... baekjoonJavaJava 백준 Baekjoon 2576번 홀수 - JAVA 문제 7개의 자연수가 주어질 때, 이들 중 홀수인 자연수들을 모두 골라 그 합을 구하고, 고른 홀수들 중 최솟값을 찾는 프로그램을 작성하시오. 예를 들어, 7개의 자연수 12, 77, 38, 41, 53, 92, 85가 주어지면 이들 중 홀수는 77, 41, 53, 85이므로 그 합은 이 되고, 이므로 홀수들 중 최솟값은 41이 된다. 입력 입력의 첫째 줄부터 일곱 번째 줄까지 한 줄에 하나... baekjoonJavaJava 백준 Baekjoon 2739번 구구단 - JAVA 문제 N을 입력받은 뒤, 구구단 N단을 출력하는 프로그램을 작성하시오. 출력 형식에 맞춰서 출력하면 된다. 입력 첫째 줄에 N이 주어진다. N은 1보다 크거나 같고, 9보다 작거나 같다. 출력 출력형식과 같게 N1부터 N9까지 출력한다. 예제 입력 1 예제 출력 1 설명... baekjoonJavaJava 백준 Baekjoon 2743번 단어 길이 재기 - JAVA 문제 알파벳으로만 이루어진 단어를 입력받아, 그 길이를 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 영어 소문자와 대문자로만 이루어진 단어가 주어진다. 단어의 길이는 최대 100이다. 출력 첫째 줄에 입력으로 주어진 단어의 길이를 출력한다. 예제 입력 1 예제 출력 1 public class Main { public static void main(String[] args) throws I... baekjoonJavaJava 백준 Baekjoon 2744번 대소문자 바꾸기 - JAVA 문제 영어 소문자와 대문자로 이루어진 단어를 입력받은 뒤, 대문자는 소문자로, 소문자는 대문자로 바꾸어 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 영어 소문자와 대문자로만 이루어진 단어가 주어진다. 단어의 길이는 최대 100이다. 출력 첫째 줄에 입력으로 주어진 단어에서 대문자는 소문자로, 소문자는 대문자로 바꾼 단어를 출력한다. 예제 입력 1 예제 출력 1 설명 처음에 작성된 정답이 ... baekjoonJavaJava 백준 Baekjoon 2798번 블랙잭 - JAVA 문제 카지노에서 제일 인기 있는 게임 블랙잭의 규칙은 상당히 쉽다. 카드의 합이 21을 넘지 않는 한도 내에서, 카드의 합을 최대한 크게 만드는 게임이다. 블랙잭은 카지노마다 다양한 규정이 있다. 한국 최고의 블랙잭 고수 김정인은 새로운 블랙잭 규칙을 만들어 상근, 창영이와 게임하려고 한다. 김정인 버전의 블랙잭에서 각 카드에는 양의 정수가 쓰여 있다. 그 다음, 딜러는 N장의 카드를 모두 ... baekjoonJavaJava 백준 Baekjoon 2822번 점수 계산 - JAVA 문제 상근이는 퀴즈쇼의 PD이다. 이 퀴즈쇼의 참가자는 총 8개 문제를 푼다. 참가자는 각 문제를 풀고, 그 문제를 풀었을 때 얻는 점수는 문제를 풀기 시작한 시간부터 경과한 시간과 난이도로 결정한다. 문제를 풀지 못한 경우에는 0점을 받는다. 참가자의 총 점수는 가장 높은 점수 5개의 합이다. 상근이는 잠시 여자친구와 전화 통화를 하느라 참가자의 점수를 계산하지 않고 있었다. 참가자의 8개... baekjoonJavaJava 백준 Baekjoon 2846번 오르막길 - JAVA 문제 상근이는 자전거를 타고 등교한다. 자전거 길은 오르막길, 내리막길, 평지로 이루어져 있다. 상근이는 개강 첫 날 자전거를 타고 가면서 일정 거리마다 높이를 측정했다. 상근이는 가장 큰 오르막길의 크기를 구하려고 한다. 측정한 높이는 길이가 N인 수열로 나타낼 수 있다. 여기서 오르막길은 적어도 2개의 수로 이루어진 높이가 증가하는 부분 수열이다. 오르막길의 크기는 부분 수열의 첫 번째 ... baekjoonJavaJava 백준 Baekjoon 2857번 FBI - JAVA 문제 5명의 요원 중 FBI 요원을 찾는 프로그램을 작성하시오. FBI요원은 요원의 첩보원명에 FBI가 들어있다. 입력 5개 줄에 요원의 첩보원명이 주어진다. 첩보원명은 알파벳 대문자, 숫자 0~9, 대시 (-)로만 이루어져 있으며, 최대 10글자이다. 출력 첫째 줄에 FBI 요원을 출력한다. 이때, 해당하는 요원이 몇 번째 입력인지를 공백으로 구분하여 출력해야 하며, 오름차순으로 출력해야 ... baekjoonJavaJava [알고리즘] Java / 백준 / 다각형의 면적 / 2166 [알고리즘] Java / 백준 / 다각형의 면적 / 2166 문제 접근 방식 ccw로 다각형을 이루는 삼각형들의 넓이 합을 구한다 ( 입력받은 점들이 반시계방향일 경우 양수, 시계방향일 경우 음수) 이 때 2로 나누지 않는다. 현재 합이 짝수이면 반올림 받지 않은 것이므로 2로 나눈 후문자열 “.0”을 더하고 현재 합이 홀수이면 반올림 받은 것이므로 2로 나눈 후“0.5”를 더한다. 코드... mathbaekjoonJavaJava [알고리즘] Java / 백준 / 도시 분할 계획 / 1647 [알고리즘] Java / 백준 / 도시 분할 계획 / 1647 문제 접근 방식 최소 스패닝 트리를 구하면서 트리를 구성하는 간선 비용의 합을 구한 후 여기에 간선의 최댓값을 빼면 두 마을을 분리하는 길의 유지비 최솟값을 구할 수 있다. 최소 스패닝 트리를 구하는 방법은 kruskal과 prim이 있는데 kruskal은 익숙해서 prim으로 구현하였다. 코드... MSTprimbaekjoonJavaJava [Baekjoon] 2225번 합분해.cpp DP는 풀어도 풀어도 어렵다. 조금씩 익숙해지는 것 같긴 한데 여전히 어렵다.. 이번 문제는 '몇 개의 숫자'를 이용하여 '어떤 숫자'를 만드는 경우의 수를 표현하는 문제이다. 이를 위해 이 차원 배열을 사용하였다. dp[num][count] 형태로, num은 만들어야 하는 숫자, count는 num을 만드는 데 사용된 숫자의 수이다. 즉, dp[4][k]라면 '4 이하의 숫자 k개를 이용하... baekjoonbaekjoon [알고리즘] Java / 백준 / 1로 만들기 2 / 12852 [알고리즘] Java / 백준 / 1로 만들기 2 / 12852 문제 접근 방식 3가지 연산을 통해 나온 결과를 k로 가정할 때 N부터 k까지의 거리 최솟값을 구하기 위해 dp를 활용한다. dp에서의 점화식은 다음과 같다 또한 dp에 최소 거리가 갱신될 때 해당 수의 부모를 parent 배열에 저장하여 추후에 1부터 역탐색하여 1로 만드는 방법에 포함된 수를 얻는다. 코드... DPbaekjoonJavaDFSDFS 백준 Baekjoon 2947번 나무 조각 - JAVA 문제 동혁이는 나무 조각을 5개 가지고 있다. 나무 조각에는 1부터 5까지 숫자 중 하나가 쓰여져 있다. 또, 모든 숫자는 다섯 조각 중 하나에만 쓰여 있다. 동혁이는 나무 조각을 다음과 같은 과정을 거쳐서 1, 2, 3, 4, 5 순서로 만들려고 한다. 첫 번째 조각의 수가 두 번째 수보다 크다면, 둘의 위치를 서로 바꾼다. 두 번째 조각의 수가 세 번째 수보다 크다면, 둘의 위치를 서로 ... baekjoonJavaJava 백준 Baekjoon 2953번 나는 요리사다 - JAVA 문제 입력 출력 첫째 줄에 우승자의 번호와 그가 얻은 점수를 출력한다. 예제 입력 1 예제 출력 1 예제 입력 2 예제 출력 2... baekjoonJavaJava [알고리즘] Java / 백준 / LCS 2 / 9252 [알고리즘] Java / 백준 / LCS 2 / 9252 문제 접근 방식 LCS dp 테이블의 점화식은 다음과 같다. LCS dp 테이블을 만들었다면 맨 오른쪽 아래 값이 LCS의 길이가 된다. 또한 공통 부분수열을 구하는 방법은 다음과 같다. LCS배열의 가장 오른쪽 아래에서 시작한다. 결과값을 저장할 문자열 answer를 준비한다. dp[i-1][j] 와 dp[i][j-1]중 현재 값과 ... LCSbaekjoonJavaJava [Baekjoon] #23881 알고리즘 수업 - 선택 정렬1 💬 아이디어 문제의 제목에서도 확인할 수 있듯이 선택 정렬의 개념을 응용하여 해답을 구하는 문제이다. 교환이 발생하는 과정을 확인해야 하기 때문에 교환 횟수를 체크할 변수 cnt를 선언하고, 최종적으로 출력될 값 answer를 선언한다. 루프를 진행하면서 원소의 자리 교체가 이루어지는 경우 cnt + 1을 하여 cnt와 교환 횟수 K가 같아지는 시점에 answer의 값을 변경한다. 💬 알고리... 정렬baekjoonbaekjoon [Baekjoon] #23968 알고리즘 수업 - 버블 정렬1 💬 아이디어 버블 정렬의 기본적인 개념을 이용한다. 먼저, 원소가 교환되는 과정을 살펴보기 위해 교환 횟수를 의미하는 변수 cnt를 선언하고, 정답으로 출력된 answer를 선언한다. 다음으로 배열의 원소 개수만큼 루프문을 실행하여 배열 내의 연속한 값들의 크기를 비교한다. 두 개의 원소가 크기의 내림차순으로 존재한다면, 자리를 상호 교환하고 cnt에 1을 더해준다. cnt가 교환 횟수 K와... 정렬baekjoonbaekjoon 백준 Baekjoon 2789번 유학 금지 - JAVA 문제 아주 멀리 떨어져 있는 작은 나라가 있다. 이 나라에서 가장 공부를 잘하는 학생들은 모두 다른 나라로 유학을 간다. 정부는 최고의 학생들이 자꾸 유학을 가는 이유를 찾으려고 했다. 하지만, 학생들의 이유가 모두 달랐기 때문에 정확한 이유를 찾을 수 없었다. 정부의 고위직은 뛰어난 학생들이 자꾸 유학을 가는 현상을 매우 불쾌해 했다. 가장 많은 학생들이 유학을 가는 대학교는 영국의 캠브리... baekjoonJavaJava 백준 Baekjoon 2754번 학점계산 - JAVA 문제 어떤 사람의 C언어 성적이 주어졌을 때, 평점은 몇 점인지 출력하는 프로그램을 작성하시오. B+: 3.3, B0: 3.0, B-: 2.7 C+: 2.3, C0: 2.0, C-: 1.7 D+: 1.3, D0: 1.0, D-: 0.7 F: 0.0 입력 첫째 줄에 C언어 성적이 주어진다. 성적은 문제에서 설명한 13가지 중 하나이다. 출력 첫째 줄에 C언어 평점을 출력한다. 예제 입력 1 예... baekjoonJavaJava 백준 Baekjoon 1001번 A-B - JAVA 문제 두 정수 A와 B를 입력받은 다음, A-B를 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 A와 B가 주어진다. (0 < A, B < 10) 출력 첫째 줄에 A-B를 출력한다. 예제 입력 1 예제 출력 1 설명 scanner를 이용하여 값 입력 후 뺄셈 nextInt 를 통해서 받아들이는 값 숫자로 인식... baekjoonJavaJava 백준 Baekjoon 2475번 검증수 - JAVA 문제 컴퓨터를 제조하는 회사인 KOI 전자에서는 제조하는 컴퓨터마다 6자리의 고유번호를 매긴다. 고유번호의 처음 5자리에는 00000부터 99999까지의 수 중 하나가 주어지며 6번째 자리에는 검증수가 들어간다. 검증수는 고유번호의 처음 5자리에 들어가는 5개의 숫자를 각각 제곱한 수의 합을 10으로 나눈 나머지이다. 예를 들어 고유번호의 처음 5자리의 숫자들이 04256이면, 각 숫자를 제... baekjoonJavaJava 백준 Baekjoon 1152번 단어의 개수 - JAVA 문제 영어 대소문자와 공백으로 이루어진 문자열이 주어진다. 이 문자열에는 몇 개의 단어가 있을까? 이를 구하는 프로그램을 작성하시오. 단, 한 단어가 여러 번 등장하면 등장한 횟수만큼 모두 세어야 한다. 입력 첫 줄에 영어 대소문자와 공백으로 이루어진 문자열이 주어진다. 이 문자열의 길이는 1,000,000을 넘지 않는다. 단어는 공백 한 개로 구분되며, 공백이 연속해서 나오는 경우는 없다.... baekjoonJavaJava 백준 Baekjoon 1834번 나머지와 몫이 같은 수 - JAVA **문제 N으로 나누었을 때 나머지와 몫이 같은 모든 자연수의 합을 구하는 프로그램을 작성하시오. 예를 들어 N=3일 때, 나머지와 몫이 모두 같은 자연수는 4와 8 두 개가 있으므로, 그 합은 12이다. 입력 첫째 줄에 2,000,000 이하의 자연수 N이 주어진다. 출력 첫 줄에 구하고자 하는 수를 출력한다. 예제 입력 1 예제 출력 1 예제 입력 2 예제 출력 2 설명 처음에 이해가 잘... baekjoonJavaJava 이전 기사 보기