반응형

Problem Solved/BOJ

    [BOJ][Java] 10814번 - 나이순 정렬

    문제 백준 10814번 문제: 나이순 정렬 문제 & 코드 설명 정렬 조건 1) 나이 2) 가입 순서 여기서 주의해야 할 점은 가입 순서이다. HashMap은 순서가 보장되지 않기 때문에 입력한대로 저장하기 위해서 이중 배열을 사용했다. 그리고 Arrays.sort에 Comparator를 사용해 나이를 기준으로 정렬했다. 가입 순서는 처음 입력한 순서만 유지되면 되므로 따로 순서를 저장할 필요는 없었다. 성공 코드 import java.util.Arrays; import java.util.Comparator; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner..

    [BOJ][Java] 1181번 - 단어 정렬

    문제 백준 1181번 문제: 단어 정렬 문제 설명 길이가 짧은 것부터 길이가 같으면 사전 순으로 정렬하고, 같은 단어는 한 번만 출력하는 문제 코드 풀이 1) HashMap에 단어들을 담는다. (words) 2) LinkedList에 HashMap의 메소드 중 하나인 entrySet을 사용해 key와 value를 모두 LinkedList로 넣는다. 여기서 entrySet에 의해 중복값이 걸러진다. - 여기서 LinkedList를 사용하는 이유는 HashMap은 순서가 보장되지 않기 때문에 순서를 유지시키기 위해서이다. 3) Collections.sort에서 Comparator를 사용해 우선순위에 따라 다르게 정렬되도록 한다. - 여기서 key는 문자열, value는 문자열의 길이이다. - 따라서 valu..

    [BOJ][Java] 1032번 - 명령 프롬프트

    문제 백준 1032번 문제: 명령 프롬프트 문제 설명 n개의 파일명을 입력받아 중복되지 않은 파일명의 부분을 ?로 출력하는 문제 처음에 문제를 제대로 안읽어서 파일명이 3개만 입력되는줄알고 하드코딩을 했다가 틀렸다ㅠ 제한시간이 2초라서 처음 입력된 값에 차례대로 하나씩 비교하게끔 했다. 일반 String으로 값을 받으면 값을 중간에 바꾸기가 번거로워서 StringBuilder를 사용해서 다른 값이 나오면 setCharAt()을 이용해 ?로 바꿔 주었다. 성공 코드 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.n..

    [BOJ][Java] 1100번 - 하얀 칸

    문제 백준 1100번 문제: 하얀 칸 문제 설명 가장 위의 칸(0,0)이 하얀색이고, 하얀색은 검정색과 번갈아가며 칠해진다면, 하얀색 위에 있는 F는 몇 개일지 구하는 문제 하얀색 말의 조건 홀수번재 열일 때 홀수번째 행 짝수번째 열일 때 짝수번째 열 조건이 위와 같기 때문에 하얀색 말의 행열 번호의 합은 언제나 짝수이다. 이를 이용해 풀어도 된다. 나는 그냥 위의 조건을 if문과 for문을 활용해서 풀었다. 위 조건일 때 F가 등장하면 1씩 증가하게끔 해줬다. 성공 코드 import java.util.Scanner; public class BOJ1100 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); Stri..

    [BOJ][Java] 2902번 - KMP는 왜 KMP일까?

    문제 백준 2902번 문제: KMP는 왜 KMP일까? 문제 설명 입력된 이름들의 첫 글자만 모아서 출력하는 문제 이름이 -로 구문되어 있으므로 입력받으면서 split("-")을 이용해 배열에 저장한다. 그리고 각각의 요소마다 첫 글자만 String으로 누적해서 저장하고 최종 값을 출력한다. 성공 코드 import java.util.Scanner; public class BOJ2902 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String[] longName = sc.next().split("-"); sc.close(); String answer = ""; for (String name : longName)..

    [BOJ][Java] 10808번 - 알파벳 개수

    문제 백준 10808번 문제: 알파벳 개수 문제 설명 입력한 단어의 알파벳 개수를 각각 출력하는 문제. 알파벳 개수를 a부터 z까지 저장하는 26개 크기의 배열을 만든다. a가 아스키코드 번호 97이므로 0번부터 a, b, c,... 순서대로 저장하기 위해 for문을 돌며 97을 빼서 카운트한다. 처음 만든 배열을 출력하면 끝이다. 성공 코드 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String s = sc.next(); sc.close(); int alpha[] = new int[26]; for (int i = 0; i < ..