진행 상황
#1 String (문자열)
1. 문자 찾기
2. 대소문자 변환
3. 문장 속 단어(indexOf(), substring())
4. 단어 뒤집기(StringBuilder이용법 또는 직접뒤집기)
5. 특정 문자 뒤집기(toCharArray())
6. 중복문자제거
7. 회문문자열
8. 팰린드롬(replaceAll 정규식이용)
9. 숫자만 추출
10. 문자거리
11. 문자열 압축
12. 암호(replace(), parseInt(string, 2))
대소문자 변환 문제 풀이
문제 : 대문자는 소문자로, 소문자는 대문자로 변환하여 출력하라
예시 입력 : daramG -> DARAMg
소스코드 :
import java.util.*;
class Main {
public String solution(String str) {
String answer = "";
for(char x : str.toCharArray()) {
if(Character.isLowerCase(x)) answer += Character.toUpperCase(x);
else answer += Character.toLowerCase(x);
}
return answer;
}
public static void main(String[] args) {
Main T = new Main();
Scanner kb = new Scanner(System.in);
String str = kb.next();
System.out.println(T.solution(str));
}
}
문장 속 단어(indexOf(), substring()) 문제 풀이
사전 지식
indexOf(String a) = a의 문자의 위치 값을 숫자를 얻는다.
lastindexOf(String a) = a 문자를 뒤에서부터 찾아 위치 값 숫자를 얻는다.
substr(a,b) : a는 시작값, b는 길이. a번째 부터 b 길이만 잘라내서 표시
substring(a,b) : a는 시작값, b는 종료값. a 번째부터 b번째 전까지 잘라내서 표시
slice(a,b) : a는 시작값, b는 종료값. a번째 부터 b번째 전까지 잘라내서 표시
Char charAt(int index) = String 문자열에서 index 번째 문자 값 1개를 가져온다.
int indexOf(String str) = 문자열 str를 찾아서 존재하면 첫째 문자 위치 값을 반환, 없으면 -1을 반환한다.
문제
한 개의 문장이 주어지면 그 문장 속에서 가장 긴 단어를 출력하는 프로그램을 작성하라
각 단어는 공백으로 구분된다.
예시) my name is daramG -> daramG
소스코드
첫 번째 방법 (split 이용)
import java.util.*;
class Main {
public String solution(String str) {
String answer = "";
int m = Integer.MIN_VALUE; // -2147483648
String[] s = str.split(" ");
for(String x : s) {
int len = x.length();
if (len>m) {
m = len;
answer = x;
}
}
return answer;
}
public static void main(String[] args) {
Main T = new Main();
Scanner kb = new Scanner(System.in);
String str = kb.nextLine();
System.out.println(T.solution(str));
}
}
두 번째 방법 (indexOf()와 substring() 이용)
import java.util.*;
class Main {
public String solution(String str) {
String answer = "";
int m = Integer.MIN_VALUE, pos;
while ((pos=str.indexOf(' ')) != -1) {
String tmp = str.substring(0, pos);
int len=tmp.length();
if(len>m) {
m = len;
answer = tmp;
}
str = str.substring(pos+1);
}
if (str.length() > m) answer = str;
return answer;
}
public static void main(String[] args) {
Main T = new Main();
Scanner kb = new Scanner(System.in);
String str = kb.nextLine();
System.out.println(T.solution(str));
}
}

자바(Java) 알고리즘 문제풀이 : 코딩테스트 대비 - 인프런 | 강의
자바(Java)로 코딩테스트를 준비하시는 분을 위한 강좌입니다. 코딩테스트에서 가장 많이 출제되는 Top 10 Topic을 다루고 있습니다. 주제와 연동하여 기초문제부터 중급문제까지 단계적으로 구성
www.inflearn.com
'Java 코딩테스트 공부 > Java 알고리즘 공부' 카테고리의 다른 글
#1 String(문자열) - 7,8,9번 문제 (0) | 2022.05.31 |
---|---|
#1 String(문자열) - 6번 & String과 StringBuilder 수행시간 측정 (0) | 2022.05.29 |
#1 String(문자열) - 4,5번 문제 (0) | 2022.05.28 |
#1 String(문자열) - 1. 문자 찾기 (0) | 2022.05.26 |
# Java 코딩테스트 공부 시작, 목차 (0) | 2022.05.24 |