1-1. 문자 찾기
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
설명 :
한 개의 문자열을 입력받고, 특정 문자를 입력받아 해당 특정문자가 입력받은 문자열에 몇 개 존재하는지 알아내는 프로그램을 작성하세요.
대소문자를 구분하지 않습니다.문자열의 길이는 100을 넘지 않습니다.
입력 :
첫 줄에 문자열이 주어지고, 두 번째 줄에 문자가 주어진다.
출력 :
첫 줄에 해당 문자의 개수를 출력한다.
입력 예시 :
Computercooler
c
출력 예시 :
2
나의 풀이
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
import java.util.*;
public class Main {
public static int solution(String input1, char input2) {
char[] c = input1.toLowerCase().toCharArray();
int cnt = 0;
for(int i=0; i < c.length; i++) {
if(input2 == c[i]) {
cnt++;
}
}
return cnt;
}
public static void main(String[] args){
Scanner in=new Scanner(System.in);
String input1 = in.nextLine();
String input2 = in.nextLine().toLowerCase();
char c = input2.charAt(0);
System.out.println(solution(input1,c));
}
}
정답 풀이
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
import java.util.*;
public class Main {
public static int solution(String input1, char input2) {
int answer = 0;
input1 = input1.toUpperCase();
input2 = Character.toUpperCase(input2);
for(chae x : input1.toCharArray()) {
if(x == input2) answer++;
}
return answer;
}
public static void main(String[] args){
Scanner in = new Scanner(System.in);
String input1 = in.next();
char input2 = in.next().charAt(0);
System.out.println(solution(input1,input2));
}
1-2. 대소문자 변환
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
설명 :
대문자와 소문자가 같이 존재하는 문자열을 입력받아 대문자는 소문자로 소문자는 대문자로 변환하여 출력하는 프로그램을 작성하세요.
입력 :
첫 줄에 문자열이 입력된다. 문자열의 길이는 100을 넘지 않습니다.
문자열은 영어 알파벳으로만 구성되어 있습니다.
출력 :
첫 줄에 대문자는 소문자로, 소문자는 대문자로 변환된 문자열을 출력합니다.
입력 예시 :
StuDY
출력 예시 :
sTUdy
나의 풀이
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
import java.util.*;
public class Main {
public static String solution(String input) {
String output = "";
for(int i = 0; i < input.length(); i++) {
//대문자에 +32 하면 소문자 변환
if((input.charAt(i) >= 65) && (input.charAt(i) <= 90)) {
output += (char)(input.charAt(i) + 32);
//소문자에 -32 하면 대문자 변환
}else{
output += (char)(input.charAt(i) - 32);
}
}
return output;
}
public static void main(String[] args){
Scanner in=new Scanner(System.in);
String input1 = in.nextLine();
System.out.println(solution(input1));
}
}
정답 풀이
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
import java.util.*;
public class Main {
public static String solution(String input) {
String output = "";
for(char x : input.toCharArray()) {
//Character.isLowerCase() : 소문자인지 확인
if(Character.isLowerCase(x)) output += Character.toUpperCase(x);
else output += Character.toLowerCase(x);
}
return output;
}
public static void main(String[] args){
Scanner in=new Scanner(System.in);
String input1 = in.next();
System.out.println(solution(input1));
}
}
1-3. 문장 속 단어
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
설명 :
한 개의 문장이 주어지면 그 문장 속에서 가장 긴 단어를 출력하는 프로그램을 작성하세요.
문장속의 각 단어는 공백으로 구분됩니다.
입력 :
첫 줄에 길이가 100을 넘지 않는 한 개의 문장이 주어집니다. 문장은 영어 알파벳으로만 구성되어 있습니다.
출력 :
첫 줄에 가장 긴 단어를 출력한다. 가장 길이가 긴 단어가 여러개일 경우 문장속에서 가장 앞쪽에 위치한
단어를 답으로 합니다.
입력 예시 :
it is time to study
출력 예시 :
study
나의 풀이
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
import java.util.*;
public class Main {
public static String solution(String input) {
String[] tmpArr = input.split(" ");
String result = "";
for(int i = 0; i < tmpArr.length; i++) {
if(result.length() < tmpArr[i].length()) {
result = tmpArr[i];
}
}
return result;
}
public static void main(String[] args){
Scanner in=new Scanner(System.in);
String input1 = in.nextLine();
System.out.println(solution(input1));
}
}
정답 풀이
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
//1. split 사용
import java.util.*;
public class Main {
public static String solution(String input) {
String answer = "";
int m = Integer.MIN_VALUE; //작은 값으로 초기화
String[] s = input.split(" ");
for(String x : input) {
int len = x.length();
if(len > m) {
m = len;
answer = x;
}
}
return answer;
}
public static void main(String[] args){
Scanner in=new Scanner(System.in);
String input1 = in.nextLine();
System.out.println(solution(input1));
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
//2. indexOf, substring 사용
import java.util.*;
public class Main {
public static String solution(String input) {
String answer = "";
int m = Integer.MIN_VALUE, pos;
while((pos = input.indexOf(' ') != -1) {
String tmp = input.substring(0, pos); //문장을 공백에서 잘라서 각각 단어를 tmp에 담는다.
int len = input.length();
if(len > m) {
m = len;
answer = tmp;
}
input = input.substring(pos+1); //한 단어의 비교를 끝냈으면 다음 단어부터 시작하도록 문장을 자른다.
}
//문장의 마지막 단어는 공백으로 자를 수 없으므로 while문 밖에서 처리한다.
if(input.length() > m) answer = input;
return answer;
}
public static void main(String[] args){
Scanner in=new Scanner(System.in);
String input1 = in.nextLine();
System.out.println(solution(input1));
}
}