첫째 줄에는 현재 시각이 나온다. 현재 시각은 시 A (0 ≤ A ≤ 23) 와 분 B (0 ≤ B ≤ 59)가 정수로 빈칸을 사이에 두고 순서대로 주어진다. 두 번째 줄에는 요리하는 데 필요한 시간 C (0 ≤ C ≤ 1,000)가 분 단위로 주어진다. 첫째 줄에 종
15552번 문제 문제 입력 출력 ※ 주요 문제 포인트 시간 제한 1.5초 1500ms 이내. 로직 자체는 구현이 어렵지 않았지만, 제한 시간 초과로 인해 구현이 어려워 아래 포스팅 글 참조하여 문제 해결함. 15552번: 빠른 A+B 문제 포스팅 글 Bu
10951번 문제※ 문제 주요 포인트EOF 개념End Of File의 약자로, 말 그대로 파일의 끝을 의미한다.이는 보통 출력 조건이 없을 때 반복문에서 읽을 수 있는 데이터가 없는 경우 반복을 종료할 때 사용하는 개념이다.일반적으로 우리가 입력하는 콘솔 창에서 EOF
배열 문제여서 배열을 사용하는 방식으로 접근해보니 시간이 너무 길게 나와버렸다. 배열의 시간복잡도를 확인해보니, 최악의 경우 O(N²)로, 상당히 높았다. 따라서 입력값을 바로 받아 연산하는 것이 시간적으로 빠른 방법이 될 것 같아 제출 답안 작성한다.
처음 문제를 보고 든 생각은 입력값을 int\[]에 담아서 각 요소를 반복문을 돌려서 정수와 비교한다음 없는 요소의 인덱스만 추출하는 방향으로 구현하려고 했지만, 생각보다 쉽지 않아서 30분(개인 제한 시간)을 넘겨 버렸다.. 아래 글 참고하여 해당 아이디어를 얻었다.
10811번 문제내림차순 정렬이 아닌 역순 정렬 문제이다...꼭 문제 풀기 전 문제 다 읽어보고 5분 정도 생각해보고 문제 풀기 시작하자.
1546번 문제정답과의 절대 오차/상대 오차 10^-2(0.01)까지 허용.입력 받은 각 점수에 (점수/M)\*100으로 연산 후 새로운 평균을 구함.참고 포스팅
10809번 문제🗝️포인트알파벳 소문자 오름차순(a-z) 으로 입력 단어 내 문자가 포함된 경우, 해당 문자가 처음 나온 위치의 인덱스 값을 출력.포함되지 않은 경우, -1 값을 출력해준다.단어(String)의 인덱스는 0부터 시작한다.인덱스 값을 구하기 위해 단어에
2675번 문제이중 for문을 사용하지 않는 방법이 없는지 고심한 끝에 결국 답이 나오지 않았던 문제이다.포스팅 글
5622번 문제
2444번 문제로직 구현 시, 예제 코드의 별을 한 행씩 출력하는 것을 염두하고 짤 것.
1157번 문제단어 내 문자의 갯수가 대소문자 구분없이 통일 되어 확인해야되기 때문에, 영대문자로 통일하였다.또 한가지는 A~Z를 문자 인코딩 값인 97 ~ 122 를 이용하여 일치 여부 확인하였으며, 이를 바탕으로 카운팅하여 배열에 각 영문자 사용 횟수를 넣어 비교하
2941번 문제참고 포스팅입력 문자를 개별로 확인하는 코드로, 이전 제출 답안은 문자열로 비교하여 코드를 구현해봤지만, dz= 와 z=의 경우 구분이 되지 않아 잘못된 값이 출력되었다. 위 코드처럼 개별 문자로 비교 검증한 결과 정상 구현되었다.
10798번 문제행(가로) 5줄, 열(세로) 15줄의 char 타입의 2차원 배열 선언.한 행의 문자열의 길이가 최소 1부터 15까지로 다양함.세로로 읽으므로, 행과 열을 바꿔서 출력해준다.값이 '\\0'인 경우 넘어가도록 조건문 작성.※ \\0은 char 배열의 초기
2563번 문제 문제 입력 출력 🗝️포인트 결과를 나타낼때, 공식을 사용하지 말고 생각하자(컴퓨터 처럼 단순 무식하게) 1번 과 같은 생각이면, 여기 100 X 100의 도화지는 10,000개의 점을 담은 판이라고 생각하고 좌표부터 10 X 10개의 흑점을 찍
2진수, 8진수, 10진수, 16진수 표현과 변환법2진수와 10진수 변환2진수 01011000 -> 10진수 88.오른쪽 끝에서 부터 자릿수가 2^0으로, 한자리가 높아질 때마다 지수가 1씩 커진다. 10진수로 변환할때 2진수에서 1인 부분만 더해주면 된다.따라서 64
진법 변환 방법에 대한 이해.반복 횟수 및 승의 표현 방법.\-> 어떻게 36^0, 36^1, 36^2, ... 를 표현할 것인가.
진법 변환 간단한 개념에 대해 이해하자.x진법 → 10진법: x의 제곱근 값을 더해서 구한다.10진법 → x진법: 10진법 값을 x로 나누어 몫이 0이 나올때까지 나눠진 몫을 또 나눠준 다음 나머지 값들을 역순으로 나열하면 된다.'A' ~ 'Z' 문자가 아스키 코드표에
2903번 문제규칙을 찾는 문제(수열 문제!!) ▶ 한 변에 점 갯수. ▶ 공차 확인. 규칙에 맞는 공식 작성 및 해당 공식을 풀어서 코드로 구현.규칙 1번: 한 변에 점 갯수가 2, 3, 5, 9, 17, 33,... 이러한 규칙을 가진며, 이 값들을 2 제곱
2292번 문제규칙성을 묻는 문제.규칙 1.벌집의 갯수가 라운드마다 6의 배수를 나타낸다. \- 1round : 1, 2round : 6(no.2~7), 3round : 12(no.8~19) ...입력값은 벌집의 누적 갯수를 의미하며, 최단거리는 라운드와 동일한
1191번 문제 문제 입력 출력 🗝️포인트 관련 문제 포스팅을 작성하기 앞서, 다른 포스팅 글들을 참고한 결과, 쉬운 문제라는 말들이 많았는데 나는 너무 어려웠다... 30분 잡다가 문제 풀이 포스팅 글들을 읽고도 이해가 안되서 다시 한번 뜯어서 본 결과, 대
2869번 문제처음 생각엔 반복문을 통해 높이에 덧셈/뺄셈을 하여 높이 값이 0이 나오면 출력되도록 구현하였으나... 반복문으로는 0.25초(250ms) 이내에 통과가 불가능 했다.해결 방안높이를 실제 하루에 이동하는 값 만큼 나눠주면, 전체 이동한 날이 나오게 된다.
10757번 문제BigInteger 사용.일반 int 또는 long 값으로 받게 될 경우, NumberFormatException이 발생하게 된다. 발생 이유로는 여러가지가 있지만, 이 문제의 경우 parsing 하려는 값이 자료형의 크기보다 크기 때문에 발생하는 것이
2501번 문제처음 문제를 접하고 코드를 짰을 때에는 ArrayList를 이용하여 담은 뒤 해당 int 배열로 mapping 후 정답을 도출하였다.하지만, 코드 제출 후 생각해보니 요구하는 결과를 도출할 때 굳이 모든 약수를 담을 필요는 없다는 생각을 했다.따라서 아래
9506번 문제약수를 배열에 담는다.sum 변수를 지정하여 n을 제외한 모든 약수들의 합을 대입한다.완전수인 경우, 모든 약수를 더한 형태의 문자열을 출력하게 되는데...이때, 약수 1은 모든 수에 공통으로 들어가기 때문에 미리 StringBuilder에 담아놓고 '+
2581번 문제참조 포스팅처음 생각했던 로직소수는 약수가 1과 자신 오직 2개이므로, 이 점만 고려하여 로직을 짰으며, 이중 for문 사용으로 인해, 실행 시간이 320ms 정도에 출력되었다.위 포스팅을 보고 느낀점소수를 찾기위한 최적화된 알고리즘을 학습할 수 있었으며
규칙 찾기 : 4의 배수 (4N)자바 자료형 허용범위 \- byte : -2^7 ~ 2^7 -1 (-128 ~ 127) \- short : -2^15 ~ 2^15 -1 (-32,768 ~ 32,767) \- int : -2^23 ~ 2^23 -1 (-2,147
문제 🗝️포인트 각 좌표 값을 배열에 담을 때, 해당 값을 나열하여 담는 방식으로 3개의 점을 각각 배열 3개에 나누어 담는다. 각 x좌표와 y좌표 값들을 비교하여 같은 겹치는 값 이외의 값이 나오도록 해주면, 평행한 사각형을 완성할 수 있다. 제출 코드
10101번 문제배열 요소 크기 비교입력값의 갯수가 3개로 한정되어 있기 때문에, 배열을 사용하지 않아도 되지만 추후 다른 문제에서 여러개의 입력 값을 받게 될 경우를 고려하여 문제를 풀기 위해 배열을 사용하였다.최적화 측면에서 비효율적인 코드 이며, 최적화된 코드를
쉬운 문제임에도 또한번 변수 기본 자료형 범위 때문에 틀렸다... int와 long의 허용 범위에 대해 경각심을 가질 필요가 있다. 항상 경계해야 겠다.int는 -2,147,483,648~ 2,147,483,647 범위의 수를 표현할 수 있는데,46341 \* 4634
일정한 규칙을 찾아야 했으며, 수학적 공식도 알고 있어야 풀이가 가능한 문제였다.등차수열의 합 시그마 기본 공식계차수열의 점화식수행횟수의 규칙위처럼 Cn = n 이며, 이를 계차수열의 점화식을 통해 bn을 구하면,bn = n(n-1)/2이다.위와 같은 방식으로 an을
브루드 포스문제 부르드 포스 : 단순 알고리즘으로, 단순반복하여 모든 경우의 수를 확인하는 알고리즘이다.문제에서 -999 ~ +999 까지의 범위를 명시하였으며, 이를 대입해가며 연립 방정식의 조건 ax + by = c && dx + ey = f 를 만족하는 값을 각각
11650번Arrays의 sort()는 2차원 배열을 정렬할 수 없다. 따라서, sort() 메서드 안에 매개변수인 Comparator를 람다식으로 구현하여 정렬 기준을 직접 지정해줘야 한다.
이 함수는 두개의 값을 비교하여 int 값으로 반환해주는 함수.compareTo() 함수는 문자열 비교 와 숫자의 비교 두가지 방식이 존재한다.숫자의 비교의 경우, 크다(1), 같다(0), 작다(-1) 라는 결과값을 반환해준다.문자열의 비교의 경우, 같다(0), 그 외
1009번 문제문제를 보면 1번 부터 10번까지의 컴퓨터가 있으며, 이는 데이터의 1의 자릿수와 동일한 값을 의미한다. 1번 데이터 1번 컴퓨터, 2번 데이터 2번 컴퓨터 ... 11번 데이터 1번 컴퓨터.위의 규칙대로 식을 새워 보면, a^b %10 = 컴퓨터 번호가
10828번: 스택stack 클래스 객체를 만들어 내부 메서드를 사용하는 간단한 예제이다.Java SE 17 & JDK 17 버전 Doc 참고한 스택 관련 메서드.boolean empty() : 스택이 비어있는지 여부를 확인하는 메서드.E peek() : 스택 최상위
9093번: 단어 뒤집기단어(String) 마다 역순으로 뒤집는 간단한 예제이다.클래스 내 정의된 reverse() 메서드를 사용하여 각 단어를 뒤집어 하나의 StringBuilder 안에 담아 출력하였다.Stack으로 구현.반복문을 이용해 거꾸로 출력하기.반복문을 이
1874번 : 스택 수열스택에 1부터 N까지의 수를 스택에 넣고(push) 빼는(pop) 과정을 통해 임의의 수열과 일치하는 수열인지 판단하는 문제이다.예제를 보면, 8을 제외한 수열의 입력값은 처음에 '4' 이다.그럼 1부터 4까지의 수를 스택에 넣는다.그리고 중요한
문제 링크백준 - 1406번 : 에디터커서라는 단어가 나오는데 커서는 위에 문제에서 설명하듯 글 작성 시, 현재 입력값이 들어갈 위치에 깜빡이는 곳을 말한다.이 문제에서는 커서 기준으로 왼쪽에 있는 값을 stack-L에 담고커서 기준 오른쪽에 있는 값을 stack-R에
백준 5397번 링크처음 문제를 읽고난 뒤에 list 내부에 값을 대입하고 빼는 경우의 수가 많다고 판단하여 이에 유리한 자료구조인 링크드 리스트(Linked-List) 구조로 구현하려고 시도 하였다.계속 IndexOutOfBounds 런타임 에러가 발생하였다. 어느
1406번 문제 링크전에 풀었던 키로거 문제와 비슷한 '커서(cursor)' 개념이 나오는 문제였다.바로 전날에 풀어서 그런지 바로 Stack 자료 구조를 사용하여 문제를 상대적으로 빠르게 풀었다.(30분)어제도 느꼈지만 Stack 자료구조에 넣거나 제거하는 로직은 금
1158번 문제 링크이번 문제는 이전에 풀었던 실버Ⅱ 문제들에 비해서 상대적으로 쉬웠던 문제였다. 처음에 원의 형태라고 하여, 큐를 2개를 사용하여 값을 순환해야 하는 문제라고 생각했지만, 2개를 사용할 경우 조건문이 추가되어 로직이 복잡해지게 된다.다시 한번 생각해보
10773번 문제 링크위와 같은 자료 구조 유형의 쉬운 문제는 자바 문서만 참조하더라도 쉽게 풀이가 가능하다.문제를 읽어보면 최근에 적은 금액을 0이라는 값이 나왔을 때, 바로 지워줘야 하기 때문에 Stack 자료 구조로 문제를 풀이하면 되겠다는 감이 온다.
10845번 문제 링크위 문제도 이전 "10773번 : 제로" 문제와 마찬가지로 자바 문서를 참고하여 간단하게 풀이가 가능한 문제이며, 기본적인 자료 구조인 '큐'를 사용하여 푸는 문제이다.하지만, 저는 "back"(가장 뒤에 있는 정수) 로직을 편하게 수행하기 위해서
2164번 문제 링크위 문제는 큐(Queue) 자료구조만 이해하고 있다면 쉽게 해결할 수 있었던 문제였습니다. 1이 가장 위에 있다는 것은 카드를 뽑을 때, 가장 먼저 뽑혀야 하기 때문에 큐 자료 구조를 적용하는 것이 맞습니다.가장 위의 수를 빼내고(poll) 그 다음
1021번 문제 링크이번 문제는 처음 읽었을 때에는 덱 구조만 알면 쉽게 풀 수 있을거라고 생각했지만, 2번과 3번 행동의 최솟값을 출력하라는 문구에서 억소리가 났다...최소한의 경우의 수를 뽑아내기 위해 다른 알고리즘을 써야하는건가? 내가 문제를 잘못 이해한건가 이런
1463번 문제 링크처음 풀어보는 실버 단계의 DP 문제였다. DP 관련 문제는 재귀함수로 풀어가야 한다는 방식을 어느정도 알고 있었다면 생각보다 쉬웠을 것 같았던 문제였다.하지만, 아쉽게도 재귀함수를 어떻게 써야하는가에서 고민하다가 결국엔 구현하지 못하고 60분을 초
9095번 문제 링크위 문제는 수의 나열인 만큼 해당 조건에 맞는 점화식을 작성할 수 있는지를 물어보는 것 같다.1,2,3의 합으로만 주어진 1이상 10이하의 n을 나타낼 수 있도록 구현해야 한다.규칙을 찾아보면,위처럼, 1, 2, 3으로 더해야 한다는 조건을 뺀 수의
4949번 문제 링크업로드중..위 문제는 이전에 풀었던 스택 문제에서 활용된 문제이다.기존 문제와 차이점은 괄호 종류가 2가지(소괄호, 대괄호) 라는 것과 괄호 안에 공백과 알파벳 문자열이 포함되어 있다는 점이다.문제 풀 때, 고려할 사항을 다음과 같이 정리했다.1\.
3986번 문제 링크이번 문제는 Stack 구조만 안다면 쉽게 풀 수 있었던 문제였다."선끼리 교차하지 않으면서 각 글자를 정확히 한 개의 다른 위치에 있는 같은 글자와 짝 지을수 있다면, 좋은 단어 이다" 라는 말이 문제의 핵심이었다.문제 핵심 정리1\. 짝을 지어야
2579번 문제 링크위 문제는 3가지 조건을 만족해야 한다.1\. 계단을 오를 때, 1단계 또는 2단계씩 오를 수 있다.2\. 연속된 3개의 계단을 밟으면 안된다.(최대 연속 2번만 오르기 가능)3\. 마지막 계단은 반드시 밟아야 한다.해당 문제는 동적 계획법 문제로써
11659번 문제 링크이번 문제부터는 <알고리즘 개념 > 시리즈대로 풀어갈 예정이다. 오늘 배운 기초는 '구간합' 개념이다. 구간합은 합배열을 구한 뒤, 공식을 사용하여 풀어주면 매우 간단한 문제이다.
11660번 문제 링크위 문제는 2차 배열의 2차원 면에서 구간합(면적)을 구하는 알고리즘 문제입니다. 이전에 수열에서 합공식을 통해 구간합을 미리 구해놓은 뒤 문제를 푸는 방식은 동일합니다.2차 배열에서 구간합을 구하는 공식은 다음과 같습니다.위의 공식은 면적을 칠한
업로드중.. 2018번 문제 링크
1940번 문제 링크투포인터 문제가 나랑 안맞나...??? 이전에 풀었던 포인터 문제와는 또다른 문제였다.조건의 변수의 범위에 따라서 연산의 총시간을 예상한 뒤 이를 고려한 알고리즘으로 풀어야 하는 것 같다.두 재료의 요소의 합, 즉 크기를 비교하는 문제이므로 값을 정
12891번 문제 링크슬라이딩 윈도우 문제로써 해당 문제는 투포인터의 활용된 문제이다. 위 문제에서 핵심 알고리즘은 이동 시, 기존의 부분문자열에서 이동 시 맨 앞을 지우고, 맨 뒤를 추가하여 최소한의 변화로 값을 비교하는 것이다.이를 위해서 Add 메서드와 Remov
2750번 문제 링크위 문제는 N의 최대 범위가 1,000으로 매우 작기 때문에 O(n^2) 시간 복잡도 알고리즘으로 풀 수 있다. 버블 정렬의 시간 복잡도가 O(n^2)이기 때문에 버블 정렬 알고리즘을 이용해 정렬해도 시간 복잡도 안에서 해결이 가능하다.버블 정렬 알
11399번 문제 링크위 문제는 삽입 정렬을 연습하기 위한 문제이다. N의 최대값이 1000 이고, 시간 제한이 1초이기 때문에 시간 복잡도가 O(n^2) 이하인 정렬 알고리즘 아무거나 사용해도 가능하다.문제 자체는 어려운 문제는 아니였다. 삽입 정렬의 정렬 순서를 생
11004번 문제 링크위 문제는 자바에서 제공하는 Arrays 에 sort가 아닌 O(nlogn) 시간 복잡도를 가지는 퀵정렬을 통해 풀어보려고 합니다.개념 자체는 어렵지는 않지만, 막상 구현하련니깐 많이 헤깔리고 놓쳤던 부분들이 많았던 문제였습니다.하루 아침에 코드가
2751번 : 수 정렬하기 2위 문제에서는 오름차순 정렬을 병합정렬을 통해 정렬한 문제입니다.N의 최대 범위가 1,000,000 이기 때문에 O(nlogn)의 시간 복잡도로 정렬을 수행하면 됩니다. 병합 정렬 로직1\. 정렬할 그룹을 최소의 길이로 나눕니다.2\. 각
10989번 문제 링크Java11의 경우, 제한시간 3초의 문제이다. 정렬 갯수가 최대 1000만개 이기 때문에, O(nlogn) 보다 빠른 알고리즘을 적용해줘야 합니다.그 중 "카운팅 정렬" 을 이용하여 해당 문제를 풀어보겠습니다.알고리즘 로직은 다음과 같습니다.1\
24090번 문제 링크퀵정렬을 연습하는 문제로 퀵정렬을 복습하기 위해 풀었습니다. 퀵정렬은 pivot(기준값)을 설정하여 start와 end 값을 비교하여 start > pivot 그리고 end < pivot 인 경우, start와 end를 swap 하여 정렬하는
11724번 문제 링크1초에 1억번 = 3초에 3억번 가능.제한 조건 : N(노드) 갯수 1,000개O(N^2) 이하 사용 가능.인접 리스트의 각 ArrayList 초기화인접 리스트에 그래프 값을 저장인접 리스트 항목 중 방문여부 확인 후 방문하지 않은 경우 count
2023번 문제 링크해당 문제를 처음 읽었을 때 소수를 판별하기 위한 로직을 짜야 하는 건가라고 생각했지만, 시간 복잡도 차원에서 보면 O(N)의 복잡도의 알고리즘을 사용해야 한다.일부 필요 없는 조건을 가지치기 한 뒤, DFS로 구현하여 문제를 해결하면 된다.2초 :
13023번 문제 링크2초 : 2억제한 조건 : 최대 2,000O(n^2) 이하 사용 가능dfs -> O(V+E) = 4,000모든 노드를 도는 경우, 4,000 \* 2,000 = 8,000,000 이므로 dfs 사용 가능해당 문제는 연결 노드 중 5개의 연결 노드가
1743번 문제 링크2초 : 200,000,000 회DFS 최대 횟수 : 가로 세로 (노드 + 에지)100 \* 100 \* ((2 \* 4)+(98 \* 98)+(3 \* 98 \* 4)) = 대략 100,000,000회DFS 사용 가능해당 문제는 방문 여부를 확
1260번 문제 링크시간 제한 : 2초 (2억회)node(1,000), edge(10,000)DFS와 BFS를 사용하더라도 충분한 연산속도 보장.DFS 구현은 쉬웠지만, BFS 개념은 처음 접해봤기 때문에, 내용을 정리하겠습니다.그래프 값을 인접 리스트에 초기화 및 방
2178번 문제 링크최대 갯수 제한이 100이므로, 시간 복잡도는 여유가 있다.DFS보다 BFS가 적합한 이유는 BFS는 해당 깊이에서 갈 수 있는 노드 탐색을 마친 후 다음 깊이로 넘어가기 때문이다.방문 배열과 깊이를 나타내는 배열을 선언한다.현재 노드에 상하좌우로
1920번 문제 링크데이터가 정렬되어 있는 상태에서 원하는 값을 찾아내는 알고리즘입니다. 대상 데이터의 중간값과 찾고자 하는 값을 비교하여 데이터의 크기를 절반씩 줄이면서 대상을 찾습니다.이분 탐색 문제의 경우, 실제 살짝만 꼬아도 너무 어렵기 때문에 당장에는 기본적인
10815번 문제 링크N : 500,000 / M : 500,000 / 2초2 10^8 25 10^10 (O(N^2)) X따라서 O(NlogN) 이하의 알고리즘으로 구현위 문제는 전일 풀었던 이분탐색을 이용한 타겟 데이터의 존재 여부를 확인하는 간단한 문제였습니다.
10816번 문제 링크1초 / N 500,000 / M 500,000O(N^2)은 시간 초과이므로, O(NlogN) 이하의 알고리즘으로 구현해줘야 합니다.기존의 이분 탐색 알고리즘을 이용하며, 시작 index를 앞과 뒤를 구분하여 두 index의 차이만큼 출력해주면,
11047번 문제 링크각 동전들은 서로 배수 관계에 있다.이 처럼 동전들의 배수관계에 놓여 잇는 경우 풀리는 대표적인 알고리즘이 '그리디 알고리즘' 이다.k의 최댓값은 100,000,000 이고, n의 Ai의 최솟값은 1로, 최악의 경우 1억회 연산을 수행하게 되고,
1929번 문제 링크소수를 구하는 문제는 에라토스테네스의 체를 사용하는 것이 가장 빠르고 확실한 방법이다.에라토스테네스의 체를 활용하여 m부터 n까지의 수 중 소수를 판별해내는 문제이다.소수여부 판별을 위한 배열을 n + 1 만큼의 길이로 선언한다.2 ~ √n 만큼의
1456번 문제 링크참고 포스팅https://velog.io/@osh8242/Java-1456%EB%B2%88.-%EA%B1%B0%EC%9D%98-%EC%86%8C%EC%88%98-%EC%86%8C%EC%88%98-%ED%8C%90%EC%A0%95정수론은 시간
1850번 문제 링크최소 공배수 또는 최대 공약수를 물어보는 문제는 "유클리드 호제법"을 활용하여 문제를 풀어주면 된다.처음 문제를 확인한 뒤, 변수에 담길 최대 범위가 2^63보다 작은 수라는 내용을 확인하고 long 자료형을 사용해야 하는 것을 잘 확인해야 합니다.
1931번 문제 링크 > 참고 포스팅 https://programming119.tistory.com/67?category=857952 📜 알고리즘 접근 방법 위 문제는 활동 선택 문제(Activity Selection problem) 이라고 합니다. 쉽게 설
11501번 문제 링크위 문제를 접근하는 방법은 "역방향 탐색법"을 사용하는 것입니다.역방향 탐색이란 별개 아니라 말그대로 배열을 역순으로 탐색한다는 것을 의미합니다. 주식으로 최대의 이익을 보기 위해서는 판매 가격과 구매 가격 간의 격차가 커야 합니다. 역방향 탐색으
15903번 문제 링크해당 문제는 등급에 비해서 상대적으로 쉽게 생각할 수 있었던 문제였다.카드 합체 과정은 다음과 같다.1\. x번 카드와 y번 카드를 골라 카드에 적힌 값을 더해준다.(x != y)2\. 계산한 값을 x번 카드와 y번 카드에 덮어 쓴다.이 후에 전체
1926번 문제 링크참고 포스팅https://m.blog.naver.com/sosow0212/222734179359해당 문제는 DFS 또는 BFS로 접근이 가능한 문제입니다.필자는 해당 문제를 DFS로 접근하였습니다.간단하게 설명드리면, 도화지에 그림이 그려진
7576번 문제 링크
1697번 문제 링크이 문제는 BFS 또는 DFS 알고리즘으로 접근이 가능합니다.필자는 BFS로 구현하였습니다.우선 1~100,000 가지의 수를 탐색하면서, k(동생의 위치)와 일치하면 값을 출력하도록 구현했습니다.]주의할 점은 방문여부 체크를 boolean 여부로
10026번 문제https://nanchachaa.tistory.com/80해당 문제는 DFS 또는 BFS로 그래프 완전 탐색을 위한 문제입니다.이번 문제를 풀면서 느낀것은 DFS와 BFS를 선택하는 시점에 어떤 것을 선택해야 하는지에 대한 판단 기준이 부족한
항해99 취업코스 2기 시작과 함께 알고리즘 문제 10문제를 던져줬다. 많은 자료구조적인 개념을 요구하는 문제는 아니였기 때문에 크게 어려움은 없었지만, 푸는데 상당히 오랜시간이 걸렸다.혼자 알고리즘 문제를 푸는것과 다른 점은 다른 참여자분들이랑 코드를 공유해보는 새로
매개변수로 받은 int\[] 배열 내에서 가장 작은 수를 제거한 배열을 반환하는 함수.단, 반환하는 배열이 비어있는 경우(최솟값 빼기 전 사이즈가 1인 경우) -1을 배열에 담아서 반환.해당 문제에서는 int\[] 배열에서 최솟값을 찾는 방식에 대해 고민하다가 마땅한
3진법 뒤집기 : 문제 링크보통 진법 문제는 기존의 2진법, 8진법, 10진법, 16진법의 변환 과정을 기반으로 구현되는 경우가 많습니다.하지만, 매번 볼때마다 어떻게 구현했었는지 기억이 잘 안나고 구현하기 까다로운 문제 유형 중 하나였던 것으로 기억합니다.이번주에도
삼총사 : 문제 링크해당 문제는 3중 for문을 통해서 구현한 문제입니다.해당 문제를 풀때 3중 for문까지 돌릴 생각이 나질 않아서, 결국 풀지 못했습니다.처음에는 3중 for문을 돌리게되면, -2, 0, 2 와 2, 0, -2 의 경우에 횟수가 중복되어 카운팅
1012번 문제 링크해당 문제는 DFS 알고리즘을 통해 접근이 가능한 문제입니다.주어진 탐색 범위가 최대 50으로 작기 때문에 O(N^2)으로 탐색을 수행해도 문제 없습니다.dfs 알고리즘을 선택한 이유는 문제의 인접 노드에 '1' 이라는 값이 있는지 여부를 따져서 차
9375번 문제 링크의상 이름과 종류가 공백으로 구분되어 주어집니다. 이 때, 서로 다른 옷의 조합을 구하는 문제입니다.같은 종류의 의상은 하나만 입는것이 가능합니다.동일한 이름의 의상은 없습니다.알몸이면 안됩니다.위 문제는 조합에 대한 문제입니다.예제를 토대로 예시를
자연수가 쓰여진 카드 n장과 i번 카드에는 ai가 쓰여져 있습니다.x와 y가 같지 않으면, x+y를 계산한 값을 x와 y에게 모두 덮어씁니다.최솟값 합체 횟수(m)에 따라 최솟값 2개를 더해서 해당 카드에 덮어씌웁니다.합체가 끝나고, N장의 카드에 적인 ai의 합을 출
게임 횟수 : X ( 1 ~ 10억)이긴 게임 횟수 : Y (1 ~ 10억)승률 : Z (소수점 X)게임에서 절대 지지 않는다.게임을 최소 몇 번 더 이겨야 Z가 변하는지 구하시오.해당 문제는 이분탐색에 퍼센트 계산이 추가된 문제입니다.이분 탐색 문제를 풀 때 고려 해
AC 언어의 규칙에 따라 배열을 변형한 결과를 출력하는 문제입니다.R(뒤집기) : 배열의 순서 뒤집기D(버리기) : 첫번째 수 버리기테스트 케이스(T) : 1~100회수행할 함수(p) : 1~10만배열 요소 갯수(n) : 0~10만배열에 담긴 정수(xi) : 1~100
N개의 정수로 이뤄진 수열이 있는 경우, 부분수열의 원소를 더한 값이 S가 되는 경우의 수를 구하시오.첫째 줄에 정수의 갯수 N과 S가 주어집니다.(N : 1~20, S : -1,000,000 ~ 1,000,000)둘째 줄에 N개의 정수가 공백으로 구분되어 주어집니다.
n개의 서로 다른 양의 정수 a1, a2, ..., an으로 이루어진 수열이 있다. ai의 값은 1보다 크거나 같고, 1,000,000보다 작거나 같은 자연수이다. 자연수 x가 주어졌을 때, ai + aj = x (1 ≤ i < j ≤ n)을 만족하는 (ai, a
백준 1406번 문제 링크단순히 리스트 중간에 값을 추가하거나 빼주는 연산이 빈번하게 발생할 수 있기 때문에, LinkedList로 구현하는 것이 빠르겠다고 생각했다.실행 결과, 시간 초과로 인해 실패했다.