백준 7

백준[1213] -팰린드롬 만들기

팰린드롬이란 거꾸로 읽어도 제대로 읽는 것과 형태가 같은 문장을 이야기한다 (내이름은 이효리~ 거꾸로해도 이효리~) 진짜 작은 실수로 조금 오래걸렸다. 그리고 Collection을 많이 써서 시간 초과가 날까 걱정했지만 이정도는 괜찮은 것 같다. 검색해보니 반례에 대해서 예민한 문제인 것 같다. 홀수개인 문자가 포함되어 있어도 이를 가운데 배치시키면 팰린드롬이 가능하다. import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.*; import java.util.stream.Collectors; public class Main { public static void main(String[] args) throws Ex..

백준[2805] java -나무자르기

이 문제에서 알아야할 점은 두가지이다. 1.이분탐색으로 풀 것 2.long타입 선언 일단 문제를 보자 이전에 공부했던 이분탐색을 생각해냈다. 특정한 값을 구해야할 때 그 시간을 줄여주는 좋은 방법이다. 이문제에서 long타입을 써야 하는 이유는 나무의 높이가 최대 1,000,000,000이기 때문이다 int형으로는 계산할 수가 없다. import java.util.*; import java.util.stream.Collectors; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n= sc.nextInt(); long height = sc.nextInt(); long[] ..

백준[1244]- 스위치 켜고 끄기

진짜 문제는 끝까지 읽어야 한다. 쉬운 문제였지만 출력 조건을 제대로 안읽어서 자꾸 출력 오류가 났었다.... 반성반성 문제 그대로 구현만하면 되는 쉬운문제다. import java.util.*; public class Main { private static int[] arr; public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = Integer.parseInt(sc.nextLine()); String inputStr = sc.nextLine(); String[] inputArr = (inputStr).split(" "); arr = new int[n+1]; arr[0]=0; for(int i=0;i

백준[1764]-듣보잡

문제 너무 웃겨서 빵터졌다.... 알 수 없는 포인트가 너무 웃기닼ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ 코테문제치고 문제가 짧은게 킬포... Hash.getOrDefault() 함수만 잘 사용할 수 있다면 정말정말 쉬운 문제다! import java.util.*; public class Main { public static void main(String[] args){ Scanner sc = new Scanner(System.in); int listen = sc.nextInt(); int see = sc.nextInt(); HashMap hash = new HashMap(); ArrayList no = new ArrayList(); int sum =0; for(int i=0;i

백준[1417]- 국회의원 선거

다솜이가 국회의원이 되면...큰일날 것 같은데... 정말 문제 그대로 풀면 된다. 1. 반복문을 돌며 다솜이를 포함해서 모든 사람들의 득표수를 살펴서 제일 득표수가 많은 사람을 찾는다 2.제일 득표수가 많은 사람이 다솜이(arr[0])이라면 반복문을 빠져나오고 return 3. 제일 득표수가 많은 사람이 다솜이가 아니라면 그사람의 득표수를 1개 빼오고 다솜이의 득표수를 하나 올린다 (매수하는 사람이 최소가 되게 하기 위해 1씩 이동) (ex. arr[max]-- arr[0]++) import java.util.Scanner; public class Main { public static void main(String[] args){ Scanner sc = new Scanner(System.in); int ..

백준[1654]-랜선자르기

이분 탐색 연습을 위해 푼 문제! 이분 탐색을 알기만 한다면 정말 쉬운 문제이다. 이분 탐색을 한두번밖에 경험해보지 않아서 아직 정확히 감은 오지 않는다. 아직까지의 생각은... 무언가 식을 세우는 것 보다 값을 하나하나 대입해서 답을 찾아야할 때 처음부터 다 찾으면 너무 많은 탐색을 해야하니 반으로 쪼개가며 탐색 횟수를 줄이는 방식인 것 같다. public class Main { public static void main(String[] args){ Scanner sc = new Scanner(System.in); int num = sc.nextInt(); long result =0; long need = sc.nextInt(); long[] arr = new long[num]; long sum =0;..