본문 바로가기

Algorithm64

[백준] 1620번-나는야 포켓몬 마스터 이다솜-Java [백준] 1620번-나는야 포켓몬 마스터 이다솜-Java ❓문제 이번 문제는 포켓몬을 이용한 아주 재미있는 알고리즘이다. ㅋㅋ 첫번째 줄에는 포켓몬 도감 리스트의 수(N)과 맞춰야 하는 문제의 개수 M이 주어진다. 두번째 줄부터는 포켓몬의 이름들과 맞춰야하는 문제의 개수가 하나씩 입력된다. 도감 리스트에 입력된 순서대로 1번부터 오름차순으로 포켓몬 번호가 매겨진다. 맞춰야하는 문제의 이름으로 입력될 경우 포켓몬 번호를, 포켓몬 번호로 입력된 경우 포켓몬 이름을 하나씩 출력한다. 🖊️풀이법 try/catch 풀이 Map과 String 배열을 생성하여 Map에는 키에는 포켓몬 이름, 밸류에는 포켓몬 번호를 넣고, String 배열에는 각각의 포켓몬 이름을 넣어준다. 문제에서 들어오는 입력 값이 문자열인지 숫.. 2023. 7. 14.
[백준] 1181번-단어 정렬-Java 백준 1181번 좌표 정렬하기 🖊️풀이법 이번 문제는 정렬뿐만 아니라 중복제거와 합쳐진 문제였다. Collection인 Set을 통해 중복을 제거해주고, Comparator 인터페이스의 compare 메서드를 커스터마이징 후 자바 내장함수인 Arrays.sor()를 통해 정렬 해주었다. 1차 정답 코드 import java.util.*; import java.io.*; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringBuilder sb = new StringBuilder.. 2023. 7. 13.
[백준] 13305-주유소-Java ❓문제 [백준] 13305-주유소-Java 🖊️풀이법 이번 문제는 원리에 대해서 이해한다면, 매우 쉽게 풀 수 있다. 다만, 문제를 읽고 단순화하고 공식을 찾는 부분이 꽤 힘들 수(?) 있다. (본인 이야기) 우선, 필자는 의사코드로 먼저 작성해 보았다. 처음에는 반드시 기름을 다음 도시로 가는 만큼 넣어야 한다.(울며 겨자먹기식으로..) 만약 다음 도시의 기름값이 현재의 기름값보다 싸다면 다음 도시에서 기름을 넣는다. 만약 다음 도시의 기름값이 현재의 기름값보다 비싸다면 여기서 넣고 간다. 이렇게 1차적으로 정리를 해보았다. 아~ 그렇다면, 가장 저렴한 도시의 기름값을 변수에 담는다면? 의사코드를 조금 수정해보자. 현재의 기름값을 변수 currentPrice 에 담는다. 첫 도시는 무조건 기름을 충전해.. 2023. 7. 13.
[백준] 14425번-문자열 집합-Java [백준] 14425번-문자열 집합 ❓문제 N개만큼 주어진 문자열 요소들이 M개만큼 주어진 문자열 요소들과 몇개가 일치하는지 카운팅 한 후 그 값을 출력하면 되는 문제이다. 🖊️풀이법 이번문제는 자바의 두가지 컬렉션 Map 또는 List를 이용하면 풀수 있다. Set은 안되냐는 궁금증이 있을 수 있다.. Set에는 contains 포함여부를 확인하는 메서드가 없기 때문에 비교요소(M 요소)에는 Set사용이 제한적이다. 따라서 이번 문제는 Map과 List를 사용하여 풀면 손쉽게 풀 수 있다. N개의 문자열(기준 문자열 요소)을 먼저 List 혹은 Map에 담아준다. 요소가 포함되어있는 경우 카운트를 할 수 있도록 int타입의 count를 초기화 시켜준다. Map을 사용한 경우 containsKey메서드를,.. 2023. 7. 12.
[백준] 11651번-좌표 정렬하기 2-Java 🖊️풀이법 앞서 풀었던 백준 11650번 좌표 정렬하기 문제와 동일하지만 정렬 기준이 y좌표란 것만 다르기 때문에 해당 부분만 수정해서 손쉽게 풀 수 있다. 만약 아래의 코드가 이해가지 않는다면, 위의 11650번 문제를 참고하자! 정답 코드 import java.util.*; import java.io.*; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st = new StringTokenizer(br.readLine()); StringBuilder.. 2023. 7. 12.
[백준] 1541-잃어버린 괄호-Java [백준] 1541-잃어버린 괄호-Java  🖊️풀이법 이번 문제는 "-"로 문자열을 나누고 나뉜 문자열을 더하여, 맨앞의 + 값을 제외하고 모두 빼주면 풀 수 있다. 그리 어렵지 않게 풀수 있으니, 정답 코드를 한번 살펴보자. 정답 코드 import java.io.*; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String s = br.readLine(); //문자열을 입력받아 s 변수에 담는다. String[] sArr = s.split("-"); // -를 기준으로 문자.. 2023. 7. 12.