메모리 확인 코드 시간 확인 코드
노트북을 생산하는데 있어서 고정 비용과 가변비용 합산하고 판매하려는 노트북의 수를 고려한 총 가격을 비교하여 손익분기점을 찾는 문제이다.문제에서 볼 수 있다시피 노트북 판매 대수와 상관없이 드는 가격을 A한대의 노트북을 생산하는데 드는 가변비용을 B노트북 가격을 C라
재귀함수로 구현된 피보나치 함수에서 0과 1을 호출하는 횟수를 출력하는 문제이다. 이 문제의 경우 메모이제이션과 다이나믹 프로그래밍 알고리즘을 이용하여 해결할 수 있다. 다이나믹 프로그래밍의 해결 방법을 적용시켰다.다이나믹 프로그래밍의 해결방법을 생각해낸 이유는 위해서
할머니께서는 숫자를 기억하고 계신게 아니라 숫자에 해당하는 알파벳 대문자를 기억하고 계신다.A,B,C는 3초가 걸리며 그 이후로는 1초씩 증가한다.최소 시간을 출력한다라는 말에 빠지지 않기!알파벳에 따른 시간을 어떻게 구할 것인지 -> Switch 문 사용A는 2초가
한줄에 입력받은 수식들에 괄호를 잘 넣어서 결과값이 최소가 나올때의 값을 구한다.\-> + 연산을 먼저 수행하고 나서 - 연산을 수행하면 된다.입력받은 문자열을 -를 기준으로 split 해준다.split 된 문자열을 탐색하면서 다시 한번 +를 기준으로 split 해준다
문자열을 입력 받는다.소문자는 대문자로, 대문자는 소문자로 바꿔 출력한다.아스키 코드값 확인대문자 : A(65) ~ Z(90)소문자 : a(97) ~ z(122)대문자와 소문자의 각 알파벳 차이는 32해결 과정문자열을 입력받은 값을 StringBuffer 객체인 wor
\[탐색 알고리즘 시간 복잡도]이진 탐색 알고리즘은 Up-Down 게임과 유사하다.N을 입력받는다.N개의 자연수를 입력받아 배열 A에 저장한다.M을 입력받는다.M개의 자연수를 입력받아 배열 A에 존재하면 1을, 그렇지 않으면 0을 출력한다.탐색 알고리즘 중 가장 시간
N과 K를 입력받아 N개의 수를 입력받고 뒷수-앞수의 값들을 순회하면서 계산한다.이 과정을 K번 진행했을 때의 결과를 ',' 기호를 붙여서 출력한다.N과 K를 입력받아 N개의 수를 ArrayList에 저장한다.재귀 함수 호출2-1. 점화식 이용하여 ArrayList 값
제일 처음 한번 출력어느 한 컴퓨터공학과 학생이 유명한 교수님을 찾아가 물었다.반복"재귀함수가 뭔가요?"반복"잘 들어보게. 옛날옛날 한 산 꼭대기에 이세상 모든 지식을 통달한 선인이 있었어.반복마을 사람들은 모두 그 선인에게 수많은 질문을 했고, 모두 지혜롭게 대답해
문제에서 제시하는 명령어를 기반으로 스택을 구현한 다음 각각의 명령어를 입력했을때 출력 결과가 나와야한다.N : 명령어 수명령어 + 숫자 또는 명령어 입력받기스택 라이브러리 사용몇개의 명령어를 입력할 것인지 입력받아 N에 대입N 만큼 반복하면서 명령어를 입력받는다.명령
progresses : 각각의 진도speeds : 각각의 속도return : 앞선 작업이 완료되었을 때 완료된 작업의 개수 리스트각각의 진도율에 각각의 속도가 하루가 지나면서 더해진다.
보물섬L(Land)와 W(Water)를 입력 받는다후크 선장은 L만 이동할 수 있다.보물은 서로 간에 최단 거리로 이동하는데 있어 가장 긴 시간 -> BFSDFS로는 성능 저하개선한 사항map(2d String array) -> map(2d char array)canM
스도쿠 - 2580일반적으로 아는 스도쿠 문제를 해결한다.9X9 스도쿠 문제를 해결가로, 세로, 3X3에 1~9의 수가 하나씩 들어가야 한다.DFS, Back Tracking을 이용해서 문제를 해결한다.스도쿠를 입력받는다.0,0 부터 탐색을 한다.스도쿠의 현재 위치의
숨바꼭질(Silver 1) - 1697N과 K를 입력받아서 N에서 K로 이동해야한다.이동방식은 3가지 현재 위치-1, 현재 위치+1, 현재위치\*2가장 빠른 시간 출력현재 위치를 기준으로 이동방식 3가지를 조합하여 BFS를 이용하여 K로까지 걸린 시간을 구한다.N과 K
벽부수고 이동하기(Gold 4) - 2206(1,1)부터 (N,M)까지 이동할때의 최단 경로 구하기한개의 벽까지만 부술 수 있다상,하,좌,우로 이동 가능여태 풀었던 문제들과 달랐던 점 : 방문 여부를 3차원 배열로 사용N, M을 입력받고 map을 입력받는다.방문했는지
N을 입력받는다.1, 2, 3으로만 이루어진 문자열로 이루어진다.제일 작은 수를 나타내는 수열을 출력해야한다.문자열을 뒤집어서 문자열 내부를 비교하여 좋은 수열을 찾는다.1, 2, 3을 탐색하면서 해당 문자열에 더해가면서 좋은 수열이면 계속해서 진행하고 그렇지 않을 경
수들의 합 2 - 실버 4투 포인터 알고리즘을 사용한다.N개의 값을 가지고 있는 배열과 그 수열의 합이 M인 개수를 구한다.시작 인덱스(start)와 끝 인덱스(start), 합을 0으로 설정한다.무한 루프를 돌면서 주어진 조건에 따라 시작 인덱스와 끝 인덱스를 조절한
소수의 연속합 - 골드 3소수들을 구한다.소수들을 기반으로 투 포인터 알고리즘을 수행하여 해당 값을 표현할 수 있는 개수를 센다.먼저 N을 입력받아서 (N+1)개의 배열을 선언한다. -> 소수 판별(isPrime)에라토스테네스의 체 알고리즘을 이용하여 소수들을 판별한다
유니온 파인드 알고리즘을 이용하여 집합의 표현을 한다.3개의 숫자를 받을 경우 첫번째 숫자가 0이면 유니온 메서드 실행, 1이면 같은 부모에 속해있는지 확인하는 메서드 실행핵심적인 find(), union(), isSameParent() 메서드에 대해 자세히 설명하고자
여행 가자 - 골드4유니온 파인드 알고리즘을 이용하여 이어진 도시를 표시한다.여행 경로를 시작경로와 현재 경로가 이어져있는지 확인하고 그에 따라 결과를 출력한다.앞서 포스팅한 집합의 표현 문제에서 사용한 알고리즘을 그대로 사용한다.다만 다른 점이 있다면 여행 경로가 오
카드 정렬하기 - 골드 4매 순간 가장 작은 카드 두 묶음을 두 개씩 비교한다.\-> 정렬 필요 --> Priority Queue 필요예를 들어 90, 80, 60, 100의 카드 묶음이 있다고 한다면60 + 80\+90 + 100\+(60 + 80) + (90 + 1
크로아티아 알파벳 - 실버5문제에서 제시한 크로아티아 알파벳 정보를 Set에 저장한다.입력받은 문자열에서 해당 부분이 있는지 찾고 개수를 센다 \- 이때 문자열의 길이가 가장 긴 값부터 있는지 확인한다.크로아티아 문자를 담고 있을 Set을 선언하고 문자열을 입력받는다.
테트로미노 - 골드 5상,하,좌,우를 탐색하면서 테트로미노를 만든다. -> BFS or DFS(선택)종이의 0,0 부터 N-1,M-1 까지 탐색하면서 최대값을 구한다.예외 상황(ㅏ, ㅓ, ㅜ, ㅗ)의 경우 따로 처리한다.DFS를 통해 테트로미노를 만들기 위해서는 0 d
연구소 - 골드 4벽을 3개 세운다.바이러스가 더이상 퍼지지 않을때까지 퍼지게 한다.안전한 영역의 크기를 최대값으로 계속해서 갱신한다.해결책 -> 벽을 3개 세우기 위해서는 DFS(depth = 3), Back Tracking을 사용해서 벽을 세운다.해결책 -> BFS
문제 나이순 정렬 - 실버 5 문제 이해 정렬 순서 : 나이순(1), 들어온 순서(2) Map을 사용하여 key, value 쌍으로 데이터를 저장하고 출력한다. 코드 코드 설명 시도(실패) 처음에 PriorityQueue를 사용하여 정렬을 하려고 시도하였다.