오늘부터 하루에 많으면 3문제... 적으면 1문제씩 코딩테스트 대비겸 알고리즘 문제를 풀어나가겠다!!목표는 2월말까지 골드에 진입하는 것이다..공부 방식이 조금 고민중이라서 오늘.. 알바 끝나고 집에와서 알고리즘 공부 방법을 찾아봐야겠다.생각 중인 방식은 아래와 같다.
오늘 풀어볼 문제는 백준 11053번 문제 "가장 긴 증가하는 부분 수열" 이다.문제입력출력📌첫 번째 시도📌그냥 간단하게 for문 2개를 넣고 배열 안에 값들은 하나씩 비교를 해서 증가를 한다면 카운트를 계속 1씩 올려서 최종적으로 가장 큰 값을 출력하는 방향으로
오늘 풀어볼 문제는 백준 16922번 문제 "로마 숫자 만들기" 이다.이 문제는 실버 3 문제이고 브루트 포스 문제이다.문제입력출력📌첫 번째 시도📌이 문제는 브루트 포스를 이용해서 for문 3개를 가지고 무작위로 그냥 계속 곱해주면 된다.그리고 중복을 피해주기 위해
오늘 풀어볼 문제는 백준 16924번 문제 "로마 숫자 만들기" 이다. 이 문제는 실버 2 문제이고 브루트 포스 문제이다.
오늘 풀어볼 문제는 백준 16968번 문제 "로마 숫자 만들기" 이다.이 문제는 브론즈1 문제이고 브루트 포스 문제이다.문제입력출력📌첫 번째 시도📌첫 번째 시도 방향성은 현재 문자와 그 전 문자를 비교하고 같다면 중복 크기의 값을 빼주는 방식으로 알고리즘을 작성했다
오늘 풀어볼 문제는 백준 16917번 문제 "양념 반 후라이드 반" 이다.이 문제는 브론즈2 문제이고 브루트 포스 문제이다.문제입력출력📌첫 번째 시도📌첫 번째 시도의 코드이다."양념 + 후라이드" 랑 "반반" \* 2 랑 비교했을 때 어떤 방식으로 구매를 해야 더
오늘 풀어볼 문제는 백준 16936번 문제 "나3곱2" 이다.이 문제는 골드5 문제이고 브루트 포스 문제이다.문제입력출력📌첫 번째 시도📌솔족히.. 구글의 도움을 받아서 이해하고 코드를 작성했다.재귀 방식으로 계속 함수를 타고타고 들어가서 결론을 지었다.그런데 실패했
오늘 풀어볼 문제는 백준 16937번 문제 "두 스티커" 이다.이 문제는 실버3 문제이고 브루트 포스 문제이다.문제입력출력📌첫 번째 시도📌코드 자체는 간단한데 문제를 이해하는 게 조금 어려웠던 것 같다.스티커를 90도로 회전이 가능하기 때문에 모든 경우의 수를 다
오늘 풀어볼 문제는 백준 16943번 문제 "숫자 재배치" 이다.이 문제는 실버1 문제이고 브루트 포스 문제이다.문제입력출력📌첫 번째 시도📌아직 재귀 호출 함수를 짜는 데 익숙하지 않은 것 같다. 그래도 이번 문제는 잘 풀린 것 같다. 하지만 살짝의 문제를 더하자면
오늘 풀어볼 문제는 백준 16938번 문제 "캠프 준비" 이다. 이 문제는 골드5 문제이고 브루트 포스 문제이다. 문제 입력 출력 📌첫 번째 시도📌
오늘 풀어볼 문제는 백준 11659번 문제 "구간 합 구하기 4" 이다.이 문제는 실버3 문제이고 구간 합 구하기 문제이다.문제입력출력📌첫 번째 도전📌구간 합을 구하면 되니깐 현 인덱스를 입력 받은 수 + 전 인덱스 해서 넣는 방법이 어떨까? 라는 생각을 했다.0
오늘 풀어볼 문제는 백준 11660번 문제 "구간 합 구하기 5" 이다.이 문제는 실버1 문제이고 구간 합 구하기 문제이다.문제입력출력📌첫 번째 도전📌앞에서 풀었던 11659번이랑 같은 방향으로 풀려고 각 열의 합을 모두 더하는 방식으로 풀었다.하지만.. 생각처럼
오늘 풀어볼 문제는 백준 10986번 문제 "나머지 합" 이다.이 문제는 골드3 문제이고 나머지 합 구하기 문제이다.문제입력출력📌첫 번째 도전📌문제 접근 자체는 (A + B) % C는 ((A % C) + (B % C)) % C 와 같다는 특징을 이용했다. 즉, 특정
오늘 풀어볼 문제는 백준 2018번 문제 "수들의 합 5" 이다.이 문제는 실버5 문제이고 투 포인트 문제이다.문제입력출력📌첫 번째 도전📌문제 자체는 어렵지 않았는데, 초반 시간을 소비한 부분이 문제를 제대로 읽지 않아서다 ㅎㅎ연속된 수라는 말을 못 보고 그냥 N만
오늘 풀어볼 문제는 백준 1940번 문제 "주몽" 이다.이 문제는 실버4 문제이고 투 포인트 문제이다.문제입력출력📌첫 번째 도전📌위 문제는 쉽다고 생각했다. 투 포인터를 이용해서 조건문을 잘 갖춰서 반복문을 돌리면 된다고 생각했다.그런데 틀렸다.. 왜지?? 너무 쉽
오늘 풀어볼 문제는 백준 1253번 문제 "좋다" 이다.이 문제는 골드4 문제이고 투 포인트 문제이다.문제입력출력📌첫 번째 도전📌앞 전에 투 포인트 문제를 어느 정도 풀어봐서 같은 방식으로 while 돌리고 조건문을 나눠서 코드를 짜면 된다고 생각했다.첫 코드를 완
오늘 풀어볼 문제는 백준 12891번 문제 "DNA 비밀번호" 이다. 이 문제는 실버2 문제이고 슬라이딩 윈도우 문제이다.
오늘 풀어볼 문제는 백준 11003번 문제 "최솟값 찾기" 이다.이 문제는 플래티넘5 문제이고 슬라이딩 윈도우 문제이다.문제입력출력이 문제는 슬라이딩 윈도우 문제면서도 Deque를 활용해서 풀어야 하는 문제이다.Deque에 대해 공부를 해보았다.DequeDouble-E
오늘 풀어볼 문제는 백준 1874번 문제 "스택 수열" 이다.이 문제는 실버2 문제이고 스택 문제이다.문제입력출력이번 문제는 스택에 관한 문제이다. 해당 문제는 7개월 전에 공부삼아 풀어본 문제였다. 그래도 기억이 가물가물하긴 해서 다시 풀어보았다.풀기 전 스택에 관해
오늘 풀어볼 문제는 백준 17298번 문제 "오큰수" 이다. 이 문제는 골드4 문제이고 스택 문제이다. 문제 입력 출력 📌첫 번째 도전📌 [문제 출처] https://www.acmicpc.net/problem/1874
오늘 풀어볼 문제는 백준 2164번 문제 "카드2" 이다.이 문제는 실버4 문제이고 큐 문제이다.문제입력출력📌첫 번째 도전📌위 문제는 예전에 풀어봤던 문제라서 쉽게 풀었다. 굳이 메서드를 만들어서 풇 필요는 없었는데, 깔끔하게 코드를 작성하고 싶어서 메서드를 만들었
오늘 풀어볼 문제는 백준 11286번 문제 "절댓값 힙" 이다.이 문제는 실버1 문제이고 우선순위 힙 문제이다.문제입력출력이 문제는 힙 문제로써 우선순위 큐를 활용해서 풀어나가야 한다.우선순위 큐일반적인 큐는 먼저 들어간 데이터가 먼저 나가는 구조인 FIFO 형식의 자
오늘 풀어볼 문제는 백준 2750번 문제 "수 정렬하기" 이다.이 문제는 브론즈2 문제이고 버블 정렬 문제이다.문제입력출력📌첫 번째 도전📌간단한 버블 정렬 문제이기 때문에 직접 버블 정렬을 구현할 수도 있지만.. ㅎㅎ 자바 자체에서 주는 메서드를 활용하는 것도 방법
오늘 풀어볼 문제는 백준 1377 문제 "버블 소트" 이다.이 문제는 골드2 문제이고 버블 정렬 문제이다.문제입력출력📌첫 번째 도전📌단순하게 주어진 문제에서 작성한 코드를 자바 코드로 옮겨서 실행해 보았다.역시 골드 문제답게 시간 초과가 발생했다.\*📌두 번째 도
오늘 풀어볼 문제는 백준 1427번 문제 "내림차순으로 자릿수 정렬하기" 이다.이 문제는 실버5 문제이고 선택 정렬 문제이다.문제입력출력📌첫 번째 도전📌선택 정렬을 활용하여 반복문을 활용하여 반복문 범위 내의 값 중 최대값을 찾아 배열 앞으로 배치해주었다.문제출처
오늘 풀어볼 문제는 백준 11399번 문제 "ATM" 이다.이 문제는 실버4 문제이고 삽입 정렬 문제이다.문제입력출력📌첫 번째 도전📌이 문제는 삽입 정렬을 활용해서 문제를 풀었다. 삽입 정렬을 구현하고 값들의 합을 모두 저장해주면 풀리는 문제이기에 간단했다.문제 출
오늘 풀어볼 문제는 백준 11004번 문제 "K번째 수" 이다.이 문제는 실버5 문제이고 퀵 정렬 문제이다.문제입력출력📌첫 번째 도전📌이 문제는 퀵정렬을 활용해서 정렬 후 K번째 수를 찾아내면 된다. 하지만.. 시간 초과가 떠버렸다.. 더 빠른 속도로 정렬을 해야하
오늘 풀어볼 문제는 백준 2751번 문제 "수 정렬하기 2" 이다.이 문제는 실버5 문제이고 병합 정렬 문제이다.문제입력출력📌첫 번째 도전📌처음 이 문제를 풀 때 그냥 sort 라이브러리를 활용해서 해결하려 했다.하지만 시간 초과도 아니고 틀렸다는 결과가 나왔다.
오늘 풀어볼 문제는 백준 1517번 문제 "버블 소트" 이다.이 문제는 플레티넘5 문제이고 버블 정렬 문제이다.문제입력출력📌첫 번째 도전📌문제 자체는 버블 정렬이라고 기재되어 있지만, 실제 버블 정렬로 풀면 시간 초과가 뜰 가능성이 크다. 그래서 병합 정렬을 활용했
오늘 풀어볼 문제는 백준 10989번 문제 "수 정렬하기 3" 이다.이 문제는 브론즈1 문제이고 기수 정렬 문제이다.문제입력출력📌첫 번째 도전📌문제는 기수 문제로 풀라고 되어 있었지만, 시간 제한이 3초나 되는데 굳이 기수 정렬을 할 필요가 없었다. sort 라이브
오늘 풀어볼 문제는 백준 11724번 문제 "연결 요소의 개수" 이다.이 문제는 실버2 문제이고 깊이 우선 탐색 문제이다.문제입력출력📌첫 번째 도전📌전에 DFS 공부삼아 풀어보았던 문제이다.DFS를 활용해서 코드를 작성해 보았다.문제 출처 https://w
오늘 풀어볼 문제는 백준 2023번 문제 "신기한 소수" 이다.이 문제는 골드5 문제이고 깊이 우선 탐색 문제이다.문제입력출력📌첫 번째 도전📌1자리수 소수로는 2, 3, 5, 7이 있다 이를 기점으로 가지치기를 해서 쭉죽 나아가면 된다. 나아가는 데에 있어서는 DF
오늘 풀어볼 문제는 백준 1260번 문제 "DFS와 BFS" 이다.이 문제는 실버2 문제이고 깊이 우선 탐색 문제 or 넓이 우선 탐색 문제이다.문제입력출력📌첫 번째 도전📌이 문제는 DFS와 BFS 둘 다 구현해주면 되는 문제이다. DFS는 앞 전에 이미 구현한 메
오늘 풀어볼 문제는 백준 1260번 문제 "미로 탐색" 이다.이 문제는 실버1 문제이고 넓이 우선 탐색 문제이다.문제입력출력📌첫 번째 도전📌이 문제는 BFS를 활용해서 풀었다. if문을 사용해서 미로의 범위를 벗어나지 않고 0인 자리에 가지 않도록 해서 풀었다.문제
오늘 풀어볼 문제는 백준 1167번 문제 "트리의 지름" 이다.이 문제는 실버1 문제이고 넓이 우선 탐색 문제이다.문제입력출력📌첫 번째 도전📌위 문제는 Edge라는 클래스를 만들어서 목적지 노드와 가중치를 저장해줬다. 또 문제를 풀기위해 BFS를 활용했다. 문제 출
오늘 풀어볼 문제는 백준 1920번 문제 "수 찾기" 이다.이 문제는 실버4 문제이고 이진 탐색 문제이다.문제입력출력📌첫 번째 도전📌위 문제는 이진 탐색으로 원하는 수를 찾는 문제이다. 그래서 이진 탐색 코드를 find라는 메서드로 만들어서 해결했다.문제 출처 :
오늘 풀어볼 문제는 백준 1920번 문제 "동전 0" 이다.이 문제는 실버4 문제이고 그리디 문제이다.문제입력출력📌첫 번째 도전📌위 문제는 그리디 문제이다. 학교 알고리즘 수업 때 다뤄본 적 있는 문제이다. 간단하게 동전을 모두 입력받으면 sort를 사용해 정렬을
오늘 풀어볼 문제는 백준 1715번 문제 "카드 정렬하기" 이다.이 문제는 골드4 문제이고 그리디 문제이다.문제입력출력📌첫 번째 도전📌처음 접근은 dp를 활용하면 좋겠다고 생각했다. 학교에서 그리디를 배울 때 dp를 이용해서 풀라고 배웠기 때문이다. 그래서 아래와
오늘 풀어볼 문제는 백준 1744번 문제 "수 묶기" 이다.이 문제는 골드4 문제이고 그리디 문제이다.문제입력출력📌첫 번째 도전📌수를 받으면, +인 수, -인 수, 0, 1 을 구분해서 저장을 해주는 게 낫다고 생각했다. +는 +끼리 곱하는 게 좋고, -는 더더욱
오늘 풀어볼 문제는 백준 1931번 문제 "회의실 배정" 이다.이 문제는 실버1 문제이고 그리디 문제이다.문제입력출력📌첫 번째 도전📌우선 순위 큐를 활용해서 문제를 해결하자고 생각했다. 또한 Room이라는 객체를 만들어서 객체 안에 start와 end 값을 넣어줬다
오늘 풀어볼 문제는 백준 1541번 문제 "잃어버린 괄호" 이다.이 문제는 실버2 문제이고 그리디 문제이다.문제입력출력📌첫 번째 도전📌이 문제는 "-" 기준으로 파트를 일단 나눈다. 그리고 첫 파트 말고는 각 파트 안에서 모두 더한 후 총 값에 빼주면 된다. 문제
오늘 풀어볼 문제는 백준 1929번 문제 "소수 구하기" 이다.이 문제는 실버3 문제이고 정수론 문제이다.문제입력출력📌첫 번째 도전📌소수를 구한다는 건 결국 n이라는 숫자의 배수를 모두 지워주면 된다. 그렇기 때문에 지워주는 과정을 코드로 작성했고, M부터 N까지의
오늘 풀어볼 문제는 백준 1456번 문제 "거의 소수" 이다.이 문제는 골드5 문제이고 정수론 문제이다.문제입력출력📌첫 번째 도전📌앞에서 푼 문제처럼 배열에 소수인 값들을 넣어준다. 그 후 for문을 통해 Max와 Min 사이에 존재하는 소수가 있다면 count를
오늘 풀어볼 문제는 백준 1747번 문제 "소수&팰린드롬" 이다.이 문제는 실버1 문제이고 정수론 문제이다.문제입력출력📌첫 번째 도전📌위 문제는 앞에서 풀었던 문제들을 활용하여 배열에 소수의 값들을 모두 넣어줬다. 그 후 배열의 값을 매 반복문마다 String으로
오늘 풀어볼 문제는 백준 1934번 문제 "최소공배수" 이다.이 문제는 브론즈1 문제이고 정수론 문제이다.문제입력출력📌첫 번째 도전📌위 문제는 간단하게 최소공배수를 구할 수 있는 함수를 만들어서 입력을 받는 동시에 함수를 돌려 최소공배수를 출력해주게 했다. 최소공배
오늘 풀어볼 문제는 백준 1016번 문제 "제곱 ㄴㄴ 수" 이다.이 문제는 골드1 문제이고 정수론 문제이다.문제입력출력📌첫 번째 도전📌min과 max를 입력받아 범위 내에서 문제에서 요구하는 제곱수로 나누어 떨어지는 값을 true로 하고 마지막에 false의 갯수를
오늘 풀어볼 문제는 백준 1850번 문제 "최대공약수" 이다.이 문제는 실버1 문제이고 정수론 문제이다.문제입력출력📌첫 번째 도전📌최대공약수를 구하는 공식을 코드로 대입해서 문제를 풀어나갔다. 적용한 공식은 a와 b가 있을 때 a%b=c라면 b랑 c랑 다시 비교하는
오늘 풀어볼 문제는 백준 18352번 문제이다.문제입력출력📌첫 번째 도전📌BFS를 활용해서 시작점 기준으로 각 노드별 거리를 visit이라는 배열에 저장해서 반환하고 k와 같은 값들을 출력해 주는 방식을 사용했다.문제 출처 : https://www.acmi
오늘 풀어볼 문제는 백준 1325번 문제이다.문제입력출력📌첫 번째 도전📌BFS를 활용해서 각 노드를 방문하고 이어진 노드의 수를 계산하며 가장 많이 연관된 노드를 찾는 방법을 활용했다. 하지만... 시간 초과가 떴다..📌두 번째 도전📌두 번째 도전이라곤 하지만.
오늘 풀어볼 문제는 백준 1707번 문제이다.문제입력출력📌첫 번째 도전📌이 문제는 DFS를 활용해서 노드가 이웃한 지 확인하고 확인한다면 "NO" 아니라면 "YES"를 출력하는 방식을 활용했다.문제 출처 : https://www.acmicpc.net/pro
오늘 풀어볼 문제는 백준 2251번 문제이다.문제입력출력📌 도전 📌Queue에 A, B 값을 한 번에 넣을 수 있게 AB라는 클래스를 선언한다. 이 Queue를 활용해서 BFS로 문제를 풀어나갔다. 문제 출처 : https://www.acmicpc.net/
오늘 풀어볼 문제는 백준 1717번 문제이다.문제입력출력📌 도전 📌node라는 클래스를 따로 만들어서 index 값과 부모 값을 넣어준다. 그 후 union과 find 함수를 통해서 알고리즘을 진행하도록 만들었다.📌 재도전 📌위 문제는 find 함수를 재귀함수로
오늘 풀어볼 문제는 백준 1976번 문제이다.문제입력출력📌 도전 📌union과 find 함수를 만들어서 구현했다.문제 출처 : https://www.acmicpc.net/problem/1976
오늘 풀어볼 문제는 백준 1043번 문제이다.📌 도전 📌앞에서 계속 풀었던 union, find 방법으로 함수는 앞에서 사용했던 것과 별 다를게 없이 사용했다. 문제가 조금 달랐던 건 party라는 배열을 생성해서 arrayList로 이어 파티에 참가한 사람들을 모
오늘 풀어볼 문제는 백준 2252번 문제이다.📌 도전 📌이 문제는 위상 정렬을 활용해서 풀었다. 연결된 노드가 있을 경우 연결을 당하는 쪽에서 카운트 +1을 하였다. 그리고 노드 정리가 끝난 후 카운트가 0인 값들은 큐에 바로 넣고 큐가 빌 때까지 반복문을 돌리며
오늘 풀어볼 문제는 백준 1516번 문제이다.📌 도전 📌앞에서 푼 2252번하고 비슷하게 문제를 풀었다. 약간 추가된 점은 시간을 추가했다는 점이다. 이 코드를 추가하여 최대인 값을 넣는 것이다.문제 출처 : https://www.acmicpc.net/pr