no image
JAVA [Programmers] 1단계 - 가장 가까운 같은 글자
📝문제 설명  📢입출력 예시 ✏️문제 풀이 1. 배열 풀이class Solution { public int[] solution(String s) { int[] answer = new int[s.length()]; int[] alph = new int[26]; for(int i=0; i 2. Map 풀이import java.util.*;class Solution { public int[] solution(String s) { int[] answer = new int[s.length()]; Map map = new HashMap(); for(int i=0; i💡새로 알게된 점
2025.02.06
no image
JAVA [Algorithm] - 백준 1193 분수 찾기
📝문제 설명 📢입출력 예시 ✏️문제 풀이순서는 이런 방향으로 되어 있다.여기서 한 번 더 생각하면  대각선으로 분모와 분자의 합이 홀수이면 아래로 내려가는 방향분모와 분자의 합이 짝수이면 위로 올라가는 방향이 그려지게 된다. 그렇다면 완전 탐색을 사용하여 홀, 짝일 때의 경우의 수에 각 칸마다 반복문을 돌려주고 그 값에 count++를 해준 뒤, 입력 값과 똑같다면 값을 출력해주면 된다.  빨간색 숫자는 첫 반복문으로 i 값이 되고, 이 i값은 분모와 분자의 합이 홀, 짝인지 판단하는 값이 될 것이다.주황색 숫자는 i값에 대해 두 번째 반복문으로 j=1부터 i값까지 반복문을 돌려주며, count 값을 증가시킨다. package Baekjoon.Simulation;import java.util.Scan..
2024.12.19
no image
JAVA [Programmers] 2단계 - 연속 부분 수열 합의 개수
📝문제 설명 합을 구하는 길이가 1인 연속 부분 수열 [1, 4, 7, 9] 4가지합을 구하는 길이가 2인 연속 부분 수열 [2, 5, 10, 11, 16] 5가지합을 구하는 길이가 3인 연속 부분 수열 [6, 11, 12, 17, 20] 5가지합을 구하는 길이가 4인 연속 부분 수열 [13, 15, 18, 21] 4가지합을 구하는 길이가 5인 연속 부분 수열 [22] 1가지 이들 중 중복되는 값을 제외하고 총 몇가지 인지 반환!중복값 제외면 자료구조는 Set을 사용하면 된다.📢입출력 예시✏️문제 풀이import java.util.*;class Solution { public int solution(int[] elements) { Set mySet = new HashSet(); ..
2024.12.06
no image
자바 [Programmers] 2단계 - 점프와 순간이동
📝문제 설명 - K칸 앞으로 점프하면 K만큼 배터리를 소모- 이동한거리 X 2 만큼 순간이동은 배터리를 소모하지 않는다. 문제 설명을 보면 앞에서 출발하는 경우의 수를 둔다. 하지만 도착지부터 0까지 도달할 수 있는 방법으로 거꾸로 TOP-DWON 방식으로 생각해보자0까지 도달하려면 1번째 조건보다는 2번째 조건이 많아야 배터리 소모가 적을 것이다.따라서 2로 나눌 수 있으면 나누고 나눠지지 않으면 1을 빼면 된다. 📢입출력 예시 ✏️문제 풀이import java.util.*;public class Solution { public int solution(int n) { int ans = 0; while(n!=0){ if(n%2==0){ ..
2024.12.03
no image
자바 [Programmers] 2단계 - JadenCase 문자열 만들기
import java.util.*;class Solution { public String solution(String s) { s = s.toLowerCase(); StringBuffer sb = new StringBuffer(); for(int i=0; i 1. 입력받은 문자열을 모두 소문자로 만든다. (toLowerCase() 함수 사용)2. 문자열 s의 원소값 1개씩 String 자료형으로 받는다. 그 이유는 toUpperCase() 함수를 사용하기 위해3. 원소값 앞에 공백이 있으면 해당 자리는 대문자로 취급해야 하기에 s.charAt(i-1) == ' ' 처리
2024.11.28
no image
자바 [Programmers] 2단계 - 이진 변환 반복하기
class Solution { public int[] solution(String s) { int[] answer = new int[2]; int seqCount = 0; int zeroCount = 0; while(s.length() != 1){ String deleteZero = ""; String binary = ""; for(int i=0; i 1. 입력받은 s 문자열에 1이 들어가 있으면 0을 제거한 문자열을 담는 곳에 추가2. 입력받은 s 문자열에 0이 들어가 있으면 0을 제거했다는 count 개수 증가3. 0을 제거한 문자열에 대해 길이 값을 2진수로 변환4. 1~..
2024.11.28
no image
자바 [Programmers] 2단계 - 다음 큰 숫자
class Solution { public int solution(int n) { int answer = 0; String nBinaryCount = Integer.toBinaryString(n); nBinaryCount = nBinaryCount.replace("0",""); int nCount = nBinaryCount.length(); while(true){ int temp = ++n; String tempBinaryCount = Integer.toBinaryString(temp); tempBinaryCount = tempBinaryCou..
2024.11.28
no image
자바 [Programmers] 2단계 - 피보나치 수
틀린 코드class Solution { public int solution(int n) { int answer = fi(n); return answer % 1234567; } private int fi(int n){ if(n == 0){ return 0; }else if(n == 1){ return 1; } return fi(n-2) + fi(n-1); }} 위 코드 대로 했더니 시간 초과가 났다.단순 피보나치 구현 문제인 줄 알았는데 시간 초과가 났다는건 피보나치 구현을 dynamic programming을 써야된다는 것을 파악했다. 수정 코드cl..
2024.11.28