본문 바로가기

백준 문제 풀이53

(#5622 Java) 다이얼 문제 문제 이해 숫자 1은 2초가 걸리고 숫자가 1씩 올라갈 때마다 1초가 더 걸린다. 숫자 2부터 알파벳이 위 그림과 같이 적혀있는데 ( 2 => A,B,C / 3 => D,E,F ... ), 입력 받은 문자열을 이 다이얼로 걸었을 때 걸리는 총 소요 시간을 구하는 것이다. 문제 해결 숫자 1은 2초, 숫자 2에 해당하는 A,B,C는 3초, 숫자 3에 해당하는 D,E,F는 4초..... 숫자 9에 해당하는 W,X,Y,Z는 10초가 소요된다. 이를 구하는 방법은 switch - case 를 이용하는 것이다. 우선 문자열을 입력 받고, 문자열의 길이만큼 switch - case 문을 반복한다. Scanner in = new Scanner(System.in); String S = in.nextLine(); .. 2023. 8. 28.
(#2908 Java) 상수 문제 문제 해결 주어진 수 두 개를 각자 거꾸로 변경한 후 크기 비교를 하면 된다. StringBuilder 클래스를 알아두면 문자열을 다루는 유용한 메소드들을 사용할 수 있다. append(), reverse() 등의 메소드들을 포함하고 있다! append() : 문자열을 추가 reverse() : 문자열 뒤집기 append로 추가된 문자열은 StringBuilder 타입으로 변환되므로 이를 toString을 이용해 문자열로 바꿔줘야 한다. 그리고 문자열 타입을 정수 타입으로 변형시키기 위해 Integer.parseInt() 를 사용해준다. (String 타입의 숫자를 int 로) int A = in.nextInt(); int B = in.nextInt(); A = Integer.parseInt(new.. 2023. 8. 27.
(#1152 Java) 단어의 개수 문제 문제 이해 문제 이해.. 는 생략도 가능. 그냥 공백을 기준으로 단어 개수 세어서 출력해주는 문제 !! 문제 해결 이 문제를 진짜 쉽고 간편하게 해결할 수 있는 방법이 있는데, 바로 StringTokenizer, countTokens의 사용이다. (import java.util.StringTokenizer; 필요) StringTokenizer 클래스란? 생성자의 첫 번째 인자로 문자열을 적어주고, 두 번째 인자로 구분자를 지정해주면, 구분자로 문자열을 분리해준다.(구분자를 지정해주지 않으면, 디폴트 값인 공백이 구분자가 된다) countTokens 토큰의 개수를 반환해준다. 이 둘을 이용하면 쉽게 문제를 해결할 수 있다. 먼저 문자열을 입력 받고, StringTokenizer 을 이용해 공백으로 문.. 2023. 8. 27.
(#2675 Java) 문자열 반복 문제 문제 이해 문제 이해 자체는 어렵지 않다. 반복할 수와 문자열이 나오면 순서대로 반복할 횟수만큼 반복해 출력해주면 되는 것. 문제 해결 우선 테스트 케이스가 몇 개 주어지는지 입력받고 그 만큼 for문을 돌려준다. int T = in.nextInt(); for(int i = 0; i < T; i++) { // 구현 } 그 다음 반복할 횟수와 문자열 입력 받기! int N = in.nextInt(); String S = in.next(); //nextLine()은 공백도 읽으므로 next()가 맞음 문자열에서 문자 하나씩 추출해 N만큼 반복해 출력해준다. for(int j = 0; j < S.length(); j++) { for (int k = 0; k < N; k++) { System.out.pri.. 2023. 8. 27.
(#10809 Java) 알파벳 찾기★ 문제 문제 이해 위에 예제 입력과 출력을 보고 문제를 이해해보자. 출력은 a부터 z까지 순서대로 각 알파벳이 주어지는 입력에서 몇 번쨰에 등장하는지 출력하는 것이다. (없으면 -1) a는 인덱스 1번에 등장하므로 1 출력, b는 인덱스 0번, c와 d는 나오지 않으므로 -1 출력... 이런 방식이다!! 문제 해결 그럼 이를 어떻게 해결해야 할까?! 사실 생각이 잘 안 나서 막막했다. 다른 사람들의 풀이를 찾아봤는데도 제대로 이해하는데 한참 걸린 건 안 비밀 .. 우선 코드를 짜기 전에 이 문제를 해결하기 위해 알아야 할 것이 있다. 바로 아스키 코드 !! 알파벳의 아스키코드는 A는 97, B는 98.. 이렇게 차례대로라고 알고 있으면 된다. ★인덱스 0번째 자리에 a가, 1번쨰 자리에 b가 담기게 하려면.. 2023. 8. 26.
(#11720 Java) 숫자의 합 문제 문제 해결 입력 받을 숫자의 개수 N을 입력 받은 후, String 타입의 S 입력 받기 그리고 for 문을 돌며 각 자리수를 더해 출력하면 끝!! 각 자리수는 for문 안에 charAt(i) 를 이용하면 된다!! 입력 받을 숫자의 개수 N, 숫자를 저장할 String 타입의 S 입력 받기!! Scanner in = new Scanner(System.in); int N = in.nextInt(); String S = in.next(); N만큼 for문을 돌며 각 자리수 더하기 ★여기에서 주의해야 할 점 : charAt()은 아스키코드 값을 반환하기 때문에 -48 or -'0'을 해야 입력 받은 숫자 그대로 사용 가능 꼭 기억해두깅★ int sum = 0; for (int i = 0; i < N; i.. 2023. 8. 18.
반응형