
백준 1929 - 소수 구하기

백준 1267 - 핸드폰 요금

백준 1546 - 소수 구하기

🔗 백준 1003 - 피보나치 함수 문제 알고리즘 분류 다이나믹 프로그래밍 풀이 1. 호출 값을 저장할 배열 이 문제에서는 0이라는 값도 의미를 가지므로 int가 아닌 Integer로 구현해 null체크 2. fibo() 함수 구현 3. f[n]의 0, 1 출력 횟수 구하기 test case 수 만큼 반복 전체 코드

🔗 백준 8595 - 히든 넘버 문제 알고리즘 분류 문자열 파싱 풀이 1. 단어의 길이, 단어 입력 2. 히든 넘버 구분 숫자인 경우 hidden에 저장 연속된 숫자가 나올 경우 자릿수를 고려해 10씩 곱하기 문자가 나올 경우 저장된 hidden(히든 넘버)를 sum(합계)에 누계하고 hidden을 초기화 char형의 숫자를 강제 형변환할 경우 아...

🔗 백준 1268 - 임시 반장 정하기 문제 알고리즘 분류 구현 풀이 1. 입력 student_classesi는 i번 학생의 j학년 때 반을 의미 2. 같은 반 여부 및 중복 확인 중복 제거를 위해 Set을 사용 각 학생 별 반복 ( i 반복) 학생의 각 학년에 대해 ( j 반복) 같은 학년( j가 같을 때)의 다른 학생(k 반복, k ...

🔗 백준 1157 - 단어 공부 문제 알고리즘 분류 구현 문자열 풀이 IDEA (1) 알파벳의 개수(26)만큼 int 배열을 생성해 각 알파벳이 입력된 횟수를 저장한다. (2) 이 때, 배열의 인덱스는 알파벳 - 65('A'의 아스키코드 값)이다. (3) 최댓값이 든 배열의 인덱스 + 65를 출력한다. 주의할 점 (1) 문제에서는 대문자와 소문자를...

🔗 백준 2930 - 가위 바위 보 문제 알고리즘 분류 구현 그리디 알고리즘 브루트포스 알고리즘 풀이 IDEA (1) 실제 상근이가 낸 모양으로 점수 계산 (2) 상근이가 낼 수 있는 경우의 수로 최대 점수 계산 (브루트포스) 1. 입력 2. 점수 계산 함수 구현 3. 상근이의 점수 계산하기 4. 최대 점수 계산하기 전체 코드

🔗 백준 11279 - 최대 힙 문제 알고리즘 분류 자료 구조 우선 순위 큐 우선 순위 큐(Prirority Queue)란? FIFO형태로 데이터가 출입되는 일반 큐와 달리, 우선순위에 따라 데이터가 출입되는 큐이다. 기본형은 작은 숫자부터(내림차순) 우선순위를 가지며, Collections.reverseOrder() 메소드를 이용해 오름차순으로 우선...

🔗 백준 1302 - 베스트셀러 문제 알고리즘 분류 자료 구조 문자열 정렬 해시를 사용한 집합과 맵 큐 풀이 1. 입력 Map의 getOrDefault(key, defaultValue)는 key로 값을 가져오되, 매핑된 값이 없으면 기본값을 반환하는 함수. 2. 팔린 갯수 계산 Map.Entry는 Map에 저장된 Key-Value 쌍의 객체이다. ...

🔗 백준 2864 - 5와 6의 차이 문제 알고리즘 분류 수학 그리디 알고리즘 문자열 사칙연산 풀이 1. 입력 2. 최솟값, 최댓값 구하여 출력 최댓값을 구할 때는 5를 6으로 대체 최솟값을 구할 때는 6을 5으로 대체 전체 코드

🔗 백준 1296 - 팀 이름 정하기 문제 알고리즘 분류 구현 문자열 정렬 풀이 1. 연두 이름의 L,O,V,E 개수 구하기 2. 각 팀 이름 별 L,O,V,E 개수 구하기 3. 우승 확률 구하기 4. 확률 비교 전체 코드

🔗 백준 16165 - 걸그룹 마스터 준석이 문제 알고리즘 분류 자료 구조 해시를 사용한 집합과 맵 풀이 1. 해시맵 생성 팀을 key, 멤버 리스트를 value로 가지는 해시맵 하나 key는 중복이 불가능하므로 멤버는 리스트로 저장해야함 멤버를 key, 팀을 value로 가지는 해시맵 하나 2. 해시맵에 걸그룹(입력내용) 저장 반복문을 돌면서 ...

🔗 백준 2908 - 상수 문제 알고리즘 분류 수학 구현 풀이 1. 입력 2. 수를 거꾸로 저장 두 수는 항상 세 자리 수 이므로, 문자열의 0, 1, 2번째 인덱스를 거꾸로 저장해도 됨, 즉 2, 1, 0 순서로 저장. 이 때, char형 문자로 저장하기 위해 -'0'을 해주고, 각 자릿수(100, 10, 1)을 곱해주어야함 3. 최댓값 출력 ...

🔗 백준 2490 - 윷놀이 문제 알고리즘 분류 구현 풀이 1. 윷 입력 3번 반복하여 각 String 문자열마다 가지는 4개의 문자를 확인 0일 경우 배(0)의 갯수 증가 2. 도개걸윷모 switch-case문 추가 배(0)의 갯수에 따라 조정 전체 코드

🔗 백준 2869 - 달팽이는 올라가고 싶다 문제 알고리즘 분류 수학 풀이 처음 시도했던 코드 처음에는 반복문을 이용해 V미터가 될 때까지 A를 더하고 B를 빼기를 반복하여 반복횟수를 저장했음 그러나 이 경우 시간초과가 떴고, 질문 게시판에서 이 문제는 O(1)만에 풀어야한다는 답글을 발견하고 아래 코드와 같이 수정 1. 입력 2. 도개걸윷모 ...

🔗 백준 2563 - 색종이 문제 알고리즘 분류 구현 풀이 1. 2차원 배열 선언 가로, 세로의 크기가 각각 100인 정사각형 모양의 흰색 도화지 2. 색종이가 붙은 좌표에 1을 저장 n은 색종이의 개수 색종이를 붙인 위치(a, b) = 색종이의 왼쪽 아래 모서리 x, y좌표 x, y좌표로부터 10(변의 길이)까지 반복해 배열에 1을 저장 3....

🔗 백준 1110 - 더하기 사이클 문제 알고리즘 분류 수학 구현 IDEA 숫자 26의 예시를 보면, 2 + 6 = 8이고, 새로운 수는 68이다. 6 + 8 = 14이고, 새로운 수는 84이다. -> 주어진 수 N에 대하여 * N의 1의 자리수(이하A)에* ((N의 10의 자리수 + 1의 자리수)의 1의 자리수)(이하B)**를 이어붙이면 새로운 수...

🔗 백준 2747 - 피보나치 수 문제 알고리즘 분류 수학 구현 풀이 처음 시도했던 코드 시간초과 -> DP로 풀기로 했음 1. dp 선언 및 초기화 int 배열을 선언하고, 피보나치 수열에서 f(0) = 0, f(1) = 1이므로 배열에 저장하고, 나머지는 -1로 초기화 2. 함수 구현 배열에 값이 저장되어있지 않다면 재귀를 통해 계산하여 저장 ...

🔗 백준 4493 - 가위 바위 보? 문제 알고리즘 분류 구현 풀이 1. 입력 test case의 수 t를 입력받고, t번에 걸쳐 게임 횟수 n을 입력받아 player 1, player 2이 낸 가위/바위/보를 저장 2. 가위바위보 함수 구현 단순 조건문 이긴 선수의 점수를 1 추가 3. 승자 판별 조건문 및 출력 단순 조건문 전체 코드

🔗 백준 1436 - 영화감독 숌 문제 알고리즘 분류 브루트포스 알고리즘 풀이 1. 입력 2. 구현 1씩 증가시키면서, 666이 나올 때마다 count를 증가 -> ex) 1번째 종말의 수(666)이 나올 때 count = 1 -> ex) 2번째 종말의 수(1666)이 나올 때 count = 2 따라서 count와 우리가 구하고자 하는 n과...

🔗 백준 6518 - 오타 자동 수정 문제 알고리즘 분류 자료 구조 브루트포스 알고리즘 많은 조건 분기 해시를 사용한 집합과 맵 풀이 1. 입력 ArrayList에 사전 단어 저장 수정할 단어의 갯수 q를 입력받아 q번에 걸쳐 단어 입력 2. 단어가 사전에 있는지 확인 list의 contains함수를 이용해 사전에 포함된 단어인지 확인 3. 비슷...

🔗 백준 4153 - 직각삼각형 문제 알고리즘 분류 수학 기하학 피타고라스 정리 풀이 1. 입력 2. 직각삼각형인지 판별 정렬함으로써 가장 긴 변이 arr[2]에 저장됨 피타고라스 정리 (가장 긴 변의 제곱 = 다른 두변을 각각 제곱하여 더한 것) 3. 결과값 출력 전체 코드

🔗 백준 1920 - 수 찾기 문제 알고리즘 분류 자료구조 정렬 이분탐색 풀이 1. 입력 주어진 정수에는 중복이 필요 없으므로 Set에 저장 2. 수를 입력받아 주어진 수에 있는지 확인 Collections의 contains함수를 이용해 있는지 확인 전체 코드

🔗 백준 14620 - 꽃길 문제 알고리즘 분류 브루트포스 알고리즘 풀이 1. 입력 한 변의 크기 n을 입력받아, 비용을 값으로 갖는 n*n 화단 2차원 배열 생성 2. 심을 수 있는 칸인지 확인하는 함수 구현 가장 먼저 해당 칸이 이미 방문되었는지 확인 상하좌우 칸이 이미 방문한 칸일 경우, 또는 화단을 벗어나는 경우 false 반환 3. 비용 ...

🔗 백준 2960 - 에라토스테네스의 체 문제 알고리즘 분류 수학 구현 정수론 소수 판정 에라토스테네스의 체 IDEA 이 문제에서 주의할 점은, 소수를 찾는 문제가 아니다. 이전에 푼 소수구하기 문제와 달리, 이번

🔗 백준 1292 - 쉽게 푸는 문제 문제 알고리즘 분류 수학 구현 풀이 1. 입력 및 수열 저장 배열에 수열 저장 2. n번부터 m번까지 더하기 인덱스를 고려하여 n-1에서 시작하여 m-1까지 반복 전체 코드

🔗 백준 1475 - 방 번호 문제 알고리즘 분류 구현 풀이 1. 입력 index = 플라스틱 숫자로 두고, 필요한 숫자의 갯수가 늘면 해당 인덱스의 배열값을 1 증가 6과 9는 뒤집어 사용할 수 있으므로, 9가 나올 경우 6에 저장하고 추후 나눈다. 2. 최댓값 출력 6의 경우 1번에서 9도 함께 저장했으므로, 2로 나누어준다. num[6]/2...

🔗 백준 7785 - 회사에 있는 사람 문제 알고리즘 분류 자료 구조 해시를 사용한 집합과 맵 풀이 1. 입력(HashMap) 이름-상태라는 Key, Value를 갖는 HashMap생 상태가 enter라면 Map.put(), 아니라면(leave) Map.remove() 2. n번부터 m번까지 더하기 회사에 남아있는 사람들을 따로 list에 넣어준 ...

🔗 백준 5073 - 삼각형과 세 변 문제 알고리즘 분류 수학 구현 기하학 IDEA 삼각형인지 아닌지를 가장 먼저 판별해야하는 조건문의 순서가 중요했다. 다만 나는 조건문 순서가 아니라 연산자때문에 더 헤맸는데, 질문 게시판에서 질문 및 반례를 찾아 해결했다. → Integer는 ==가 아니라 equals로 비교해야한다.

🔗 백준 1966 - 프린터 큐 문제 알고리즘 분류 구현 자료 구조 시뮬레이션 큐 풀이 1. 입력 (Queue) 인덱스를 저장하는 큐와 중요도를 저장하는 큐 각각 만들어 저장 2. 문서의 중요도에 따라 출력 특정 문서가 출력되는 '순서'를 구하는 문제이므로, 문서가 출력될 때마다 출력된 횟수를 저장 (cnt 변수) (1) max 변수에 중요도가 가...

🔗 백준 1439 - 뒤집기 문제 알고리즘 분류 그리디 알고리즘 문자열 IDEA 문제 설명을 보고 헷갈릴 수 있는데, 전체를 뒤집는 경우는 생각하지 않아도 된다. 예제를 보면 이해하기가 쉬운데, (1) 예제2의 '11111'을 보면 뒤집을 필요가 없으므로 출력은 0이다. (2) 예제3의 '00000001'을 보면 1을 0으로, 즉 1번 뒤집으면 되므로...

🔗 백준 7568 - 덩치 문제 알고리즘 분류 구현 브루트포스 알고리즘 풀이 1. 배열 입력 인원 수 만큼 2차원 배열을 만들어 0번에 몸무게, 1번에 키 저장 2. 브루트포스 처음엔 1위로 시작 자신을 제외한 다른 사람들과 키, 몸무게를 비교하여 덩치가 작다면(몸무게, 키 모두 작다면) 등수를 뒤로 한 칸씩 미룬다. 전체 코드

🔗 백준 2748 - 피보나치 수 2 문제 알고리즘 분류 수학 다이나믹 프로그래밍 풀이 1. DP 초기화 n범위가 90보다 작거나 같은 자연수이므로 91개 배열 생성 후 -1로 초기화 0, 1, 2번에 값 대입 2. 피보나치 함수 값이 -1이라면 f(n) = f(n-1) + f(n-2) 식을 통한 계산 전체 코드

🔗 백준 10799 - 쇠막대기 문제 알고리즘 분류 자료구조 스택 IDEA 스택은 써도, 쓰지 않아도 된다. 아래 풀이는 스택을 사용하지 않은 풀이이나, count를 증감하는 대신 스택에 넣고 빼면서 스택의 사이즈를 가지고 계산하여도 성립할 것 같다. 
🔗 백준 3085 - 사탕게임 문제 알고리즘 분류 구현 브루트포스 알고리즘 풀이 1. 배열 입력 2. 가로(오른쪽)으로 사탕 교환하며 최대갯수 확인 3. 세로(아래)로 사탕 교환하며 최대갯수 확인 4. 최대 개수를 확인하는 함수 전체 코드

🔗 백준 11286 - 절댓값 힙 문제 알고리즘 분류 자료 구조 우선순위 큐 IDEA Priority Queue에 대한 이해 필요 기본적으로는 FIFO방식을 따르나, 우선순위가 존재하여 우선순위가 높은 것을 먼저 내보냄. 우선순위 큐에서의 compare 재정의 o1에게 높은 우선순위를 주고 싶으면 -1을, o2에게 높은 우선순위를 주고 싶으면 ...

🔗 백준 28279 - 덱 2 문제 알고리즘 분류 자료 구조 덱 IDEA 앞뒤로 입출력이 발생하므로 이름처럼 덱을 사용해 풀어야 한다. 풀이 1. 덱 선언 및 입력 LinkedList로 덱을 선언하고, 명령어 1~8 (command)를 입력받는다. 정수가 있을 경우 정수 x(num)을 함께 입력받는다. 2. 명령문에 따른 조건문 전체 코드

🔗 백준 18258 - 큐 2 문제 알고리즘 분류 자료 구조 큐 풀이 1. 큐 선언 및 입력 큐 문제이기 때문에 처음에는 Queue q = new LinkedList();와 같이 선언하려고 했다. 그러나 문제 조건을 보면 back 명령이 들어왔을 때 맨 뒤의 정수를 출력해야하는데, Queue 인터페이스는 이러한 메소드를 지원하지 않는다. 따라서 아래...

🔗 프로그래머스 Lv.1 - 같은 숫자는 싫어

🔗 프로그래머스 Lv.2 - 기능 개발

🔗 프로그래머스 Lv.2 - 올바른 괄호
기본적으로 LinkedHashMap을 사용하면, 입력된 Key의 순서대로 정렬된 Map을 제공한다. 그러나 오름차순/내림차순 등의 다른 정렬 방법이 필요하다면, key 또는 value로 정렬이 가능하다. Key 값으로 정렬 예제 : 백준 20291 - 파일정리 map의 keySet을 이용하여 정렬한다. Collections.sort()는 기본적으로 오름...

🔗 백준 28278 - 스택 2자료 구조스택앞뒤로 입출력이 발생하므로 문제 이름처럼 스택을 사용해 풀 수 있다. 풀이에 앞서, 나는 이 문제를 6개월 전 푼 적이 있으나 다시 풀이한 것임을 밝힌다.Stack을 선언하여 풀었으나, 시간 초과로 실패이전에 Collecti

🔗 프로그래머스 Lv.1 - 추억 점수 문제 풀이 1. 해시맵 선언 및 저장 배열로 전달받은 이름(String)과 그리움 점수(Integer)를 map에 저장한다. 제한사항에 name의 길이 = yearning의 길이라고 제시되어있으므로 단순히 name의 길이만큼 반복하며 저장하면 된다. 2. 점수 계산 주의할 점으로는, map에 key가 있는지 확...