Seize your moment! 👾

안녕하세요. Eric입니다. 제 블로그에 방문해주셔서 감사합니다.

알고리즘 19

[Eric's 백준] 9095번 - 1,2,3 더하기 - Java

오늘 풀어볼 문제는 1,2,3 더하기 입니다 해당 문제는 DP 로 풀수 있습니다! 제가 하단처럼 문제를 풀은 이유는 n = 1 인경우는 -> 1가지 1 n = 2 인 경우는 -> 2가지 1 + 1 2 n = 3 인 경우 -> 4가지 1 + 1 + 1 1 + 2 2+ 1 3 이제 n = 4 일 경우는 n이 3일때 값 1 + 1 + 1 + 1 1 + 2 + 1 2 + 1 + 1 3 + 1 n이 2일대 의 값 1 + 1 + 2 2 + 1 n이 1일때의 값 1 + 3 위처럼 n =4 일경우( n = 3 )+ (n = 2) + (n =1 ) 값을 더해주면 나오는 DP 를 이용하면 arr[n] = arr[n-1] + arr[n-2] +arr[n-3] 의 식을 도출해 낼 수 있습니다! 하지만 n =1, n=2 , n..

[Eric's 백준] 1157번 - 단어공부 - Java

안녕하세요! Eric 입니다! 오늘 제가 풀어볼 문제는 문자열 문제 백준 1157번 단어 공부 라는 문제입니다! 저는 해당문제를 HashMap 을 이용해서 풀어보았습니다! 또한 toUpperCase 와 toCharArray 도 이용하였습니다! 우선 주어진 문자를 받아서 toUpperCase 로 모두 대문자로 만들고, 해당 문자들을 toCharArray 로 각각의 char 로 잘게 자른다음에 HashMap 에 key 값을 알파벳으로 넣음과 동시에 각각의 알파벳의 개수를 value 값으로 넣어주었습니다. 그리고 for문 을 통해서 keySet()을 이용하여 개수가 많은 알파벳을 char answer 로 받았으며, 만약 for문을 돌다가 max 값과 동일한 값이 나오면 ?가 답으로 나오도록 설정하였습니다! 더..

[Eric's 백준] 2606번 - 바이러스 - Java

안녕하세요! Eric 입니다 오늘 풀어볼 문제는 백준 2606번 바이러스 입니다. 해당문제는 dfs 로 풀었습니다. 문제를 풀면서 저는 그림을 하단과 같이 그려가며 풀어보았습니다. 코드 제가 결과값에서 answer 부분에서 -1 을 한 이유는 1번 컴퓨터는 이미 감염된 컴퓨터 이므로 -1 을 제거해주어야 합니다. boolean[] visited 값이 true 인 결과의 개수를 세어주어 풀어도 상관은 없습니다.

[Eric's 백준] 1269번 - 대칭 차집합 - Java

안녕하세요! Eric 입니다! 오늘 풀어볼 문제는 백준 1269 번 대칭 차집합 이라는 문제입니다. 저는 해당 문제를 HashMap 하나만 사용 해서 풀어보았습니다. 우선 집합 A를 HashMap 에 넣었습니다. 그리고 집합 B와 비교하면서 중복되는 개수를 count 했습니다. (int intersection ) 그리고 정답으로는 집합 A의 원소 개수 + 집합 B의 원소의 개수 - 2 * 중복 원소 개수 를 하였습니다. 왜냐하면, 결국에 차집합의 개수는 하단의 사진처럼 적용 할 수 있기 때문입니다.

[Eric's 백준] 14425번 - 문자열 집합 - Java

오늘 풀어볼 문제는 집합과 맵이라는 백준 14425번 문제입니다. 저는 오늘부터 Scanner 대신에 Buffered ~ 를 사용 하도록 하겠습니다! 해당 문제에서 제가 풀었던 방식은 해쉬맵을 이용하였습니다. 주어진 문자를 우선 HashMap 에 n개 넣은 후 m 개의 문자를 Hashmap 의 containsKey 를 이용하여 count 하였습니다. 제가 푼 방식은 하단과 같습니다. key 값을 String 값으로 넣었으며, value 값은 그냥 의미 없는 0을 넣었습니다.

[Eric's 백준] 10809번 - 알파벳찾기 - Java

안녕하세요! Eric 입니다. 오늘은 아주 쉬운 문제를 풀어보도록 하겠습니다. 오늘의 문제는 알파벳 찾기 문제로써 java의 indexOf 를 이용해서 저는 문제를 풀어보았습니다. 저는 입력되는 값의 string 값에 indexOf 를 이용해서 풀었습니다. 해당 알파벳이 있다면 그 문자의 위치가 나올것이고, 해당 알파벳이 없다면 자동으로 indexOf 의 값이 -1 이 나올것입니다. 그래서 저는 for문에서 i=0 부터 돌지만, ASCII code를 이용하기위해서 i +97 을하고 이를 char 타입으로 변환 하였습니다. 해당 문제는 모두 소문자 알파벳이 나오기로 하였으므로 ASCII 코드에 맞는 값이 나오면 indexOf 를 이용해서 바로 출력하도록 하였습니다. import java.util.Scann..

[Eric's 백준] 3273번 - 두 수의 합 - Java

투포인터 를 이용해서 문제를 풀어 보았습니다. import java.util.Arrays; import java.util.Scanner; public class N3273 { public static void main(String[] args) { N3273 T = new N3273(); Scanner kb = new Scanner(System.in); int n = kb.nextInt(); int[] arr = new int[n]; for (int i = 0; i < n; i++) { arr[i] = kb.nextInt(); } int x = kb.nextInt(); System.out.println(T.solution(n, arr, x)); } public int solution(int n, int[..

[Eric's 백준] 1806번 - 부분합 - Java

투포인터 를 이용해서 문제를 풀어 보았습니다. import java.util.Scanner; public class N1806 { public static void main(String[] args) { N1806 T = new N1806(); Scanner kb = new Scanner(System.in); int n = kb.nextInt(); int s = kb.nextInt(); // 투포인터를 사용하기위해서 배열을 한칸 늘림 int[] arr = new int[n+1]; for (int i = 0; i < n; i++) { arr[i] = kb.nextInt(); } System.out.println(T.solution(n, s, arr)); } public int solution(int n, ..

[Eric's 백준] 27160번 - 할리갈리 - Java - 2023보드게임컵

2023 보드게임컵에서 나왔던 문제입니다. 저는 해쉬를 이용해서 문제를 풀어 보았습니다. import java.util.HashMap; import java.util.Scanner; public class Main { public static void main(String[] args) { Main T = new Main(); Scanner kb = new Scanner(System.in); int n = kb.nextInt(); HashMap map = new HashMap(); for (int i = 0; i < n; i++) { String a = kb.next(); int b = kb.nextInt(); map.put(a, map.getOrDefault(a,0)+b); } String answer..