#10869
💡 하나로 입력된 문자를 분리하여 연산을 할 수 있는지 ?
2735 윤년계산

하하! 수 찾기 문제랑 비슷해서 바로 풀어버릴 줄 알았는데 💡 중복원소는 정렬 후에 upperbound, lowerbound를 이용해서 풀자! 이 문제는 수 찾기 문제와 비슷하지만 고려해야할 부분이 있습니다.바로 중복원소의 갯수를 알아내야 합니다. 종복되는 원소의 갯


factorial를 long형으로 정의해야한다!

특정 값에 대한 배열의 특정 인덱스 찾기특정 조건을 만족하는 최대/최소값 찾기중요한 점어떤 것을 기준으로 범위를 좁힐 것인가? (변수 설정)이 문제에서는 숫자 카드 2 문제에서 배웠던 Upper Bound의 개념을 사용해야 합니다. 그 이유는 Lower Bound와 U

자바에서는 현재 Priority Queue를 이용해서 최대힙, 최소힙을 간단하게 사용할 수 있도록 제공해주고 있습니다.완전 이진 트리부모노드의 키값과 자식노드의 키값에는 대소관계가 성립즉, 힙은 최솟값 또는 최댓값을 빠르게 찾아내기 위한 완전 이진 트리 형태로 만들어진

이지한 문제
문제이해 정수를 저장하는 stack을 구현 한 다음, 입력으로 주어지는 명령을 처리해야 한다. 명령별로 다섯가지의 케이스가 나누어집니다. 입력 첫째 줄에 명령의 수 N이 주어진다. (1 ≤ N ≤ 1,000,000) 둘째 줄부터 N개 줄에 명령이 하나씩 주어진다.
문제 문제해석

여는 괄호 '(' 가 있으면 반드시 닫는괄호')' 가 존재해야 한다는 것입니다.만약, 주어진 문자열이 괄호의 조건을 성립하면 YES를, 성립하지 않으면 NO를 출력하는 문제입니다. 입력은 T개의 테스트 데이터로 주어진다. 입력의 첫 번째 줄에는 입력 데이터의 수를 나타
문제이해 입력 첫째 줄에 카드의 개수 N(3 ≤ N ≤ 100)과 M(10 ≤ M ≤ 300,000)이 주어진다. 둘째 줄에는 카드에 쓰여 있는 수가 주어지며, 이 값은 100,000을 넘지 않는 양의 정수이다. 합이 M을 넘지 않는 카드 3장을 찾을 수 있는 경우

N개의 수가 주어졌을때 오름차순으로 정렬하는 문제이다. 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 절댓값이 1,000보다 작거나 같은 정수이다. 수는 중복되지 않는다.첫째 줄부터 N개의 줄에 오름

요새 바빠서 자꾸 쉬운문제만 풀게된다 양심상 쉬운문제는 두개씩 푸는중.. 바쁜거 끝나면 어려운거 (라고해봤자 실버..) 풀어야지 다섯개의 정수를 입력받아 평균과 중앙값을 출력하는 문제입니다. 첫째 줄부터 다섯 번째 줄까지 한 줄에 하나씩 자연수가 주어진다. 주어지는 자

앞에서 풀었던 괄호문제를 변형하면 됩니다. 각 문자열은 마지막 글자를 제외하고 영문 알파벳, 공백, 소괄호("( )"), 대괄호(" ")로 이루어져 있으며, 온점(".")으로 끝나고, 길이는 100글자보다 작거나 같다.입력의 종료조건으로 맨 마지막에 온점 하나(".")


문제이해 이 문제는 상근이가 가진 카드에 적힌 적힌 수가, 그 다음 입력으로 입력받은 카드의 숫자를 포함하는지 아닌지 판단하여 포함 유무에 따라 1 혹은 0으로 출력해내는 문제입니다. 입력 총 네번 입력을 받습니다. 첫째줄에는 상근이가 가지고 있는 숫자카드의 갯수,

바쁘단 핑계로 쉬운문제 풀기 장인이 되어버렸다 ...... 입력으로 N과 K를 받고, N 개의 정수를 입력하고, 이 수들을 정렬 한 이후에, k번쨰 큰 수를 출력하면 됩니다. 입력을 위해 BufferedReader를 선언해주었습니다. 문자열 분리를 위해 StringTo

맨날 StringTokenizer만 써서 풀었는데 일반적으로 split를 이용하는 것 같길래 split을 써서 풀어보았다. 흠 뭐가 더 편한지는 모르겠다 ! 이 문제는 N개의 문자열로 이루어진 집합 S가 주어지고, 그 다음 입력으로 주어지는 M개의 문자열 중에서 집합
문제이해 이 문제는 출입기록의 수를 입력받고, 그 수 만큼 사원의 이름과 출입기록을 입력하고 최종적으로 회사에 남아있는 사원의 이름을 사전순의 역순으로 출력하는 문제입니다. 입력 입력으로 출입기록의 수를 입력받습니다. 이후, 사원의 이름과 출퇴근 log를 입력받습니다. 출력 남아있는 사원의 이름을 사전순의 역순으로 출력합니다. 문제접근 이 문제는 각 사원...

이 문제는 사람 수와 각 사람이 돈을 인출하는데 걸리는 시간이 주어지고, 인덱스 별 누적 합의 총합을 구하고, 그 중 가장 작은 값을 출력해내는 문제입니다. 예를들어 배열이 있다고 치면, arr0 + ( arr0 + arr1 ) + ( arr0 + arr1 + arr2
문제이해 이 문제는 N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 문제입니다. 입력 입력으로 수의 갯수가 주어지고, 두번째줄부터는 N개의 수가 주어집니다. 이때 수는 절댓값이 1000000보다 작거나 같은 정수이고 수는 중복되지 않습니다. 출력 오름차순으로
문제이해 정렬하려고 하는 수가 주어지면, 각 자리수에 해당하는 숫자를 내림차순으로 정렬하면 됩니다. 입력 입력으로 정렬하려는 수 N을 입력받습니다. (N은 1,000,000,000보다 작거나 같은 자연수) 출력 내림차순으로 정렬한 수를 출력합니다. 문제접근 입력

문제가 너무 길어서.. 간식 별로 안먹고싶어짐 .. 이 문제는 승환이 앞에 서 있는 학생들의 수를 입력받고, 그 다음 줄에는 학생들의 번호표를 입력받습니다.이후, 번호순으로 간식을 받을 수 있는데 해당 순서에 해당하지 않으면, 추가 대기줄에 순서대로 들어간 이후, 나

이 문제는 동전의 종류가 N종류라고 할 때, 동전들을 이용해 동전들의 합으로 특정 입력으로 주어진 가치를 만들어야 합니다. 이때, 특정 값을 만들기 위해 필요한 동전갯수의 최소값을 만드는 문제입니다. 입력으로 N과 K가 주어지고, 그 다음으로는 동전의 가치가 오름차순으
문제이해 이 문제는 입력으로 듣지도 못한 사람N명, 보지도 못한 사람 M명이 주어지고, 둘째줄부터는 N명의 사람과 M명의 사람이 주어집니다. N과 M명 중 공통인물인 듣도 보도 못한 사람의 명수와 명단을 출력해야하는 문제입니다. 뭔가 문제가 귀엽다. 듣도보도라는 표현을 골똘히 생각해서 듣는것과 보는것의 의미를 나누어서 문제로 만든게 귀여워서 푸는데 기분...

이 문제는 두 원소의 갯수를 차례로 입력받고, 입력으로 주어진 원소에서 대칭차집합의 갯수를 구하는 원소입니다. 입력으로 집합의 원소의 갯수 N과 M이 주어집니다. 이후, 각각 N개의 원소, M개의 원소가 두줄의 입력으로 주어집니다. 두 집합의 대칭차집합의 원소의 갯수를

나 이제 해시셋맵 장인이에요 아 쉬운문제 풀기 장인인가 ㅜㅎ 얼른 더 잘하고 싶다 이 문제는 substring을 쓸 줄 아는지, 인덱스설정을 잘 줄 아는지 물어보는 문제입니다. 이 문제는 문자열을 주어지고, 부분문자열을 구한 다음 서로다른

문제이해 이 문제는 구간 합을 구하는 문제입니다. >이 문제에서 주의해야하는 부분은 데이터의 개수인 M과, 질의 수인 N의 범위입니다. >문제를 풀 때 값의 범위를 보고 언제나* worst case*에 대해 생각해봐야 합니다. 최악의 경우, N과 M 모두 최대

정점의 수, 간선의 수, 시작정점을 입력받고 이후에 간선의 쌍을 입력으로 받습니다. BFS의 결과로 얻은 방문순서를 출력해야 합니다. 이때, 시작 정점으로부터 접근할 수 없는 정점은 0으로 출력해야 합니다. 이 문제는 기본 BFS문제와 동일합니다. 출력하는 방법에 있어

너비 우선 탐색 1 문제와 완전 동일합니다. 앞의 문제는 인접 정점을 오름차순으로 정렬 한 후에 방문하는거였는데, 이 문제는 내림차순으로 정렬하면 됩니다. Collections.reverseOrder() 옵션만 넣어주면 됩니다 짱쉬움 ! 앞의 포스팅에서 이미 구현했지만

이 문제는 특정 노드와 연결되어 있는 노드의 개수를 세는 문제입니다.BFS를 이용하여 시작정점에서 탐색을 시작해 인접 정점들을 모두 탐색하면 될 것 같습니다. 그냥 poll할때 마다 카운트를 찍어주면 됩니다! 짱쉬움컴퓨터의 수가 주어지고, 두번째는 연결되어 있는 컴퓨터

그래프 탐색 기본문제답게 정점과 간선과 시작정점을 입력받고, 탐색을 시작할 정점을 입력으로 받습니다. 각 정점 별 탐색순서를 출력해주면 됩니다. 앞의 문제에서 이용했던 count를 이용해 탐색순서를 출력해주면 될 것 같습니다. 서치해보니까 푸는 방법이 많은데 저는 BF

이 문제는 입력받은 임의의 String을 펠린드롬으로 만들 수 있다면, 펠린드롬으로 만들어 출력하고, 만들 수 없다면, "I'm Sorry Hansoo" 를 출력하는 문제입니다. 펠린드롬은 순서를 거꾸로 읽었을때도 원래의 문자열이나 수열과 동일한 경우를 말 합니다. 펠

이 문제는 사람들과 사람들이 주어지고, 각 사람은 자신의 위치에서 거리가 k이하인 햄버거를 먹을 수 있는데, 만약 누군가가 먹었다면 해당 햄버거는 먹을 수 없습니다. 이 상태에서, 식탁의 길이와 햄버거를 선택할 수 있는 거리가 주어지고, 사람과 햄버거의 위치관계가 주어

이 문제는 정수의 수열과, 구간의 길이 k 가 주어질 때, 해당 수열에서 구간의 길이가 k인 구간합을 모든 경우에 대해 구하고 그 중 가장 큰 값을 반환해야 하는 문제입니다. 구간 합 문제이므로, prefixSum을 이용해보았습니다. 누적 합을 구하지 않고도 다르게 풀

변형없이 베이직하게 BFS DFS 구현하는 문제입니다.

이 문제는 배추흰나비가 되고싶은 배추흰지렁이의 먹고사는 이야기 .. 배추흰나비가 되고싶은 배추흰지렁이는 연속된 배추를 보호할 수 있는데, 2차원 배열에 배추의 위치가 주어지고, 배추흰지렁이가 총 몇마리 필요한지 구하는 문제입니다.2차원 배열에서 점 이동2차원 배열이 주

이 문제는 2차원 배열이 주어지고, 인접한 원소의 총 개수(집의 개수)와 인접한 원소로 이루어진 그룹의 수(단지의 수)를 구하는 문제입니다. 배추문제와 다른점은, 배추문제에서는 배추의 좌표를 직접 X와 Y로 받았다면, 이 문제에서는 집의 위치정보를 0과 1로 이루어진

이 문제는 N\*M 크기의 배열로 표현되는 미로가 주어지고, 미로의 (1,1) 위치에서 출발하여 (N,M)의 위치로 이동할때 지나야 하는 최소의 칸 수를 구하는 문제입니다. 이 문제는 최단경로를 구하는 문제입니다. 최단경로를 구할때 BFS를 이용하므로, BFS를 이용해

주어진 문제는 2차원 좌표가 주어졌을 때, x좌표가 증가하는 순으로, 그리고 x좌표가 같다면 y좌표가 증가하는 순서로 정렬하는 문제입니다.Collection.sort()나 Arrays.sort()를 comparator 혹은 람다식을 이용해 확장하여 활용하는 방법 보통
문제이해 ㅎㅎㅎㅎㅎㅎ 알고리즘 푸는거 재밌다 내 자신 제법 뿌듯해요 맨날 DFS, BFS풀면서 2차원 배열에서 방향배열 나올때마다 상하좌우말고 다르게 움직이는거 나왔음 좋겠다.. 내가 출제자면 움직이는거 변형해서 낼텐데 왜 늘 상하좌우일까 .. 라는 생각을 하곤 했는데 이번 문제에서 나이트가 움직이는게 변형된 형태로 나와서 즐겁게 품ㅎ 무튼.. 이 문...

이 문제는 좌표정렬하기1문제를 정렬하는 기준을 y로 바꾼 문제입니다. 2차원 평면 위의 점 n개가 주어지고, 좌표를 y가 증가하는 순서로, y좌표가 같으면 x가 증가하는 순서로 정렬한 다음 출력하는 문제입니다. 람다식을 이용한 2차원 배열의 정렬

단어를 주어진 기준에 따라 정렬하는 문제입니다. 단어의 개수를 입력받고, 알파벳 소문자로 이루어진 단어가 주어지고 조건에 따라 길이가 짧은 것 부터 정렬하고, 길이가 같으면 사전순으로 정렬하면 됩니다. 람다식, compareTo(), 중복 제거람다식을 사용하면 Comp

뭐야 왜 50점줘요 이 문제는 문자열을 입력받고, 문자열의 특정 인덱스 l과 r 사이에서, 특정 알파벳이 출현되는 빈도를 구하여 케이스 별로 출력하는 문제입니다. 이때, 문자열의 문자는 0번째부터 세며, l번째와 r번째 문자를 포함해서 생각합니다. 이 문제는 서브테스

이 문제는 수빈이의 위치 N(0 ≤ N ≤ 100,000), 동생은 K(0 ≤ K ≤ 100,000)에 위치하고 있습니다. 수빈이는 자신의 위치에서 N+1, N-1, N\*2 만큼 이동할 수 있는데, 수빈이가 동생을 찾을 수 있는 가장 빠른 시간을 구해 출력하면 되는

문제이해 이 문제는 회원의 수가 주어지고, 나이와 이름을 입력받아 나이가 어린순으로 정렬하고, 나이가 같으면 먼저 가입한 사람이 앞으로 오는 순으로 정렬하여 나이와 이름을 출력하는 문제입니다. 문제접근 두가지 원소를 비교해야하고, 정해진 기준으로 정렬해야하므로 기준

이 문제는 n과 m을 입력받고, 1부터 n까지 자연수 중엣 중복없이 M개를 고른 수열을 출력하는 문제입니다. 이때, 수열은 증가하는 순서로 출력해야 합니다. 이 문제는 백트래킹을 이용하는 문제입니다. DFS(Depth First Search)는 기본적으로 모든 경로를

문제접근 연결요소의 개수라고 했으므로, DFS 혹은 BFS를 구현하고 함수가 호출된 횟수를 세면 됩니다. 그래프 탐색 문제는 탐색을 시작할 정점을 주는 경우가 많은데, 이 문제는 시작 정점을 주지 않았습니다. 이 경우, 방문배열을 순회해서 방문하지 않은 점에 대해

이 문제는 a - b - c - d - e 의 친구관계가 주어진 그래프에서 존재하는지 확인하는 문제입니다. DFS를 이용해 특정 깊이까지 도달할 수 있는 경로가 존재하는지 확인하고, 그 경로가 존재하면 1을, 존재하지 않으면 0을 출력해주면 됩니다. 노드마다 DFS를
문제이해 이 문제는 트리와 각 노드간의 거리가 주어지고, 임의의 두 노드사이의 최장거리인 트리의 지름을 구하는 문제입니다. 문제접근 가장 긴 경로찾기 idea >**1. 임의의 노드에서 BFS수행 첫 번째 BFS에서 가장 먼 노드로부터 다시 BFS 수행 ** 트리의