1. 사용자로부터 받은 영문에서 자음과 모음 개수를 계산하는 프로그램을 작성하라.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
class Aeiou {
private String s;
private int i, m = 0;
public String getS() {
return s;
}
public void setS(String s) {
this.s = s;
}
public void getMcnt() {
String s1 = s.toUpperCase();
for (i = 0; i < s1.length(); i++) {
if (s1.charAt(i) == 'A' || s1.charAt(i) == 'E' || s1.charAt(i)
== 'I' || s1.charAt(i) == 'O' || s1.charAt(i) == 'U')
m++;
}
System.out.println("모음 개수: " + m);
System.out.println("자음 개수: " + (s1.length() - m));
}
}
|
cs |
1
2
3
4
5
6
7
8
9
10
11
12
|
class Aeioumain {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
Aeiou aeiou = new Aeiou();
System.out.println("영문을 입력해주세요.");
String s = sc.next();
aeiou.setS(s);
aeiou.getMcnt();
}
}
|
cs |
2. 사용자의 체중과 비교하여 저체중/표준/과체중인지를 판단하는 프로그램을 작성하라.
(사용자로부터 키를 입력받아 표준 체중 계산)
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
|
//표준 체중 계산식은 다음을 사용하라.
//표준체중 = ( 키 - 100 ) * 0.9
class Weight {
private int kg, cm;
public int getKg() {
return kg;
}
public void setKg(int kg) {
this.kg = kg;
}
public int getCm() {
return cm;
}
public void setCm(int cm) {
this.cm = cm;
}
public void getVal() {
double sw = (cm - 100) * 0.9;
if (sw == kg) {
System.out.println("표준체중입니다.");
} else if (sw > kg) {
System.out.println("저체중입니다.");
} else
System.out.println("과체중입니다.");
}
}
|
cs |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
class Weightmain {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
Weight w = new Weight();
System.out.println("체중을 입력해주세요.");
int kg = sc.nextInt();
System.out.println("신장을 입력해주세요");
int cm = sc.nextInt();
w.setKg(kg);
w.setCm(cm);
w.getVal();
}
}
|
cs |
3. 2와 100 사이에 있는 모든 소수(prime number)를 찾는 프로그램을 작성하라.
cf) 주어진 정수 k를 2부터 k-1까지의 숫자로 나누어서 나머지가 0인 것이 하나라도 있으면 소수가 아니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
class Num{
public static void main(String[] args) {
int count = 0;
for(int k = 2; k <= 100; k++){
for(int n = 2; n <= k; n++){
if(k % n == 0) {
count++;
}
if(count == 1) {
System.out.println(k);
}
count=0;
}
}
}
|
cs |
4. 사용자에게 받은 문자열을 역순으로 화면에 출력하는 프로그램을 작성하시오.
1)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
//입력:abcde
//출력:edcba
class Reversewords {
public static void main(String[] args) {
String words;
Scanner sc = new Scanner(System.in);
words = sc.next();
for (int i = words.length() - 1; i >= 0; i--) {
System.out.print(words.charAt(i));
}
}
}
|
cs |
2)
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
29
30
31
|
class Reverse {
private String words;
public Reverse() {
}
public Reverse(String words) {
this.words = words;
}
public String getWords() {
return words;
}
public void setWord(String words) {
this.words = words;
}
public void input() {
Scanner sc = new Scanner(System.in);
System.out.println("입력할 단어를 넣으세요.");
words = sc.next();
sc.close();
}
public void reversePrint() {
if (words == null) {
System.out.println("단어 입력이 안되었습니다.");
return;
}
for (int i = words.length() - 1; i >= 0; i--) {
System.out.print(words.charAt(i));
}
}
}
|
cs |
1
2
3
4
5
6
7
|
class Reversemain {
public static void main(String[] args) {
Reverse reverse = new Reverse();
reverse.input();
reverse.reversePrint();
}
}
|
cs |
5. String 을 이용하여 프로그래밍 하시오. **기본**
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
//입력 : 990925-1012999
//출력 : 990925 1012999
class Number {
private String str;
public Number() {
}
public Number(String str) {
this.str = str;
}
public void input() {
Scanner sc = new Scanner(System.in);
System.out.println("주민번호를 입력해주세요(-포함)");
str = sc.nextLine();
sc.close();
}
public void output() {
String[] st = str.split("-");
String ar1 = st[0];
String ar2 = st[1];
System.out.println(ar1 + " " + ar2);
}
}
|
cs |
1
2
3
4
5
6
7
|
class Numbermain {
public static void main(String[] args) {
Number number = new Number();
number.input();
number.output();
}
}
|
cs |
6. 아래를 프로그래밍 하시오. (단, 클래스로 구성할 것) **기본**
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
29
30
31
|
//입력:lee sunkyo
//출력:first name: lee second name:sunkyo
class Name {
private String fname;
private String sname;
public String getFname() {
return fname;
}
public void setFname(String fname) {
this.fname = fname;
}
public String getSname() {
return sname;
}
public void setSname(String sname) {
this.sname = sname;
}
public void input() {
Scanner sc = new Scanner(System.in);
System.out.println("영문 성과 이름을 입력해주세요.");
fname = sc.next();
sname = sc.next();
sc.close();
}
public void output() {
System.out.println("first name: " + fname);
System.out.println("second name: " + sname);
}
}
|
cs |
1
2
3
4
5
6
7
|
class Namemain {
public static void main(String[] args) {
Name name = new Name();
name.input();
name.output();
}
}
|
cs |
7. 아래를 프로그래밍 하시오.
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
29
30
31
32
33
34
35
|
/*
입력 : 홍 길동
출력 : 성 = 홍 이름 = 길동
입력 : 홍길동
출력 : 공백이 없군요. 다시 입력해주세요. */
class Name {
private String name;
private int stop;
private boolean a = true;
void input() {
Scanner sc = new Scanner(System.in);
System.out.print("이름을 입력하세요 : ");
name = sc.nextLine();
}
boolean cut() {
stop = name.indexOf(" ");
if (stop == -1) {
System.out.println("공백이 없군요 다시 입력해주세요.");
System.out.println();
return a = true;
}
System.out.print("성: " + name.substring(0, stop));
System.out.println(" 이름: " + name.substring(stop + 1));
return a = false;
}
void print() {
while (a) {
input();
cut();
}
}
}
|
cs |
1
2
3
4
5
6
|
class Namemain {
public static void main(String[] args) {
Name n = new Name();
n.print();
}
}
|
cs |
8. 아래를 프로그래밍 하시오.
· "Hello.java" 문자열에서 파일명과 확장자인 java를 분리시키는 프로그램을 짜시오.
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
29
30
31
|
/*
입력: Hello.java
출력: 파일이름은:Hello 이며 확장자는 java 입니다.
입력: Java.avi
출력: 파일이름은:Java 이며 확장자는 avi 입니다. */
class Hellojava {
private String str;
public Hellojava() {
}
public Hellojava(String str) {
this.str = str;
}
public void input() {
Scanner sc = new Scanner(System.in);
System.out.println("문자열을 입력해주세요");
str = sc.nextLine();
sc.close();
}
public void output() {
int n = 0;
for (int i = 0; i <= str.length() - 1; i++) {
if (str.charAt(i) == '.')
n = i;
}
System.out.println("파일이름은 " + str.substring(0, n) + "이며 확장자는 " + str.substring(n + 1) + "입니다.");
}
}
|
cs |
1
2
3
4
5
6
7
|
class Hellomain {
public static void main(String[] args) {
Hellojava hello = new Hellojava();
hello.input();
hello.output();
}
}
|
cs |
9. Scanner 클래스 이용해서 한 줄 읽고, 공백으로 분리된 "단어"가 몇 개 들어 있는지 확인해보자.
· "그만"을 입력할 때까지 반복하는 프로그램이다. 힌트(split 함수를 이용해 볼것)
1) main 함수만을 이용
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
|
/*
입력 : Java Programming
출력 : 단어의 개수는 2
입력 : 자바 수업은 2층 C클래스
출력 : 단어의 개수는 4
입력 : 그만
출력 : 프로그램 종료 */
class Wordcountmain2 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("단어개수 확인하기");
while (true) {
System.out.println("입력:");
String sentence = sc.nextLine();
if (sentence.equals("stop")) {
System.out.println("프로그램 종료");
break;
}
String[] words = sentence.split(" ");
System.out.println("단어의 갯수는: " + words.length);
}
sc.close();
}
}
|
cs |
2) class 이용
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
29
|
class Wordcount {
private String sentence;
private String[] words;
Wordcount(String sentence) {
this.sentence = sentence;
}
private void wordSplit() {
if (sentence == null) {
System.out.println("입력값이 없습니다.");
return;
}
this.words = sentence.split(" ");
}
private void wordPrint() {
if (words == null) {
System.out.println("입력값이 없습니다.");
return;
}
System.out.println("단어의 갯수는: " + words.length);
for (int i = 0; i < words.length; i++) {
System.out.println("단어는" + words[i]);
}
}
public void getResult() {
wordSplit();
wordPrint();
}
}
|
cs |
1
2
3
4
5
6
7
8
9
10
11
|
class Wordcountmain {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("단어개수 확인하기");
while (true) {
System.out.println("입력:");
Wordcount wordCount = new Wordcount(sc.nextLine());
wordCount.getResult();
}
}
}
|
cs |
10. 대결 프로그램을 작성하시오.
두 사람이 이름을 키보드로 입력 받으며 각 사람은 Person 클래스로 작성하라.
그러므로 프로그램에는 2개의 Person 객체가 생성되어야 한다. 두 사람은 번갈아 가면서 게임을 진행하는데 각 사람이
자기 차례에서 <Enter> 키를 입력하면, 3개의 난수가 발생되고 이 숫자가 모두 같으면 승자가 되고 게임이 끝난다.
난수의 범위를 너무 크게 잡으면 3개의 숫자가 일치하게 나올 가능성이 적기 때문에 숫자의 범위는 1~3까지로 한다.
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
29
30
31
32
33
34
35
|
/*
1번째 선수 이름>>수희
2번째 선수 이름>>연수
[수희]:
3 1 1 아쉽군요!
[연수]:
3 1 3 아쉽군요!
[수희]:
2 2 1 아쉽군요!
[연수]:
1 1 2 아쉽군요!
[수희]:
3 3 3 수희님이 이겼습니다! */
class Person {
public String name;
private int num1, num2, num3;
public Person(String name) {
this.name = name;
}
public boolean getPlay() {
num1 = (int)(Math.random() * 3) + 1;
num2 = (int)(Math.random() * 3) + 1;
num3 = (int)(Math.random() * 3) + 1;
System.out.print("\t" + num1 + " " + num2 + " " + num3 + " ");
if((num1==num2)&&(num2==num3)) {
return true;
}else {
return false;
}
}
}
|
cs |
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
29
|
class Personmain {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("1번째 선수 이름 >> " );
Person person1 = new Person(sc.next());
System.out.print("2번째 선수 이름 >> " );
Person person2 = new Person(sc.next());
while(true) {
System.out.println("[" + person1.name + "]:");
sc.nextLine();
if(person1.getPlay()){
System.out.println("승리입니다!!");
break;
}else {
System.out.println("아쉽군요");
}
System.out.println("[" + person2.name + "]:");
sc.nextLine();
if(person2.getPlay()){
System.out.println("승리입니다!!");
break;
}else {
System.out.println("아쉽군요");
}
}
}
}
|
cs |
11. 문제 10번 게임을 n명이 하도록 수정하라.
· 실행 예시와 같이 게임에 참여하는 선수의 수를 입력받고 각 선수의 이름을 입력받도록 수정하라.
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
|
/*
겜블링 게임에 참여할 선수 숫자>>3
1번째 선수 이름>>황
2번째 선수 이름>>이
3번째 선수 이름>>김
[황]:
2 3 3 아쉽군요!
[이]:
1 2 2 아쉽군요!
[김]:
2 2 3 아쉽군요!
[황]:
3 2 2 아쉽군요!
[이]:
1 1 3 아쉽군요!
[김]:
2 2 1 아쉽군요!
[황]:
2 2 2 황님이 이겼습니다! */
//난수 생성은 10번과 동일
class Personmain2 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("겜블링 게임에 참여할 선수 숫자>> ");
int num = sc.nextInt();
Person2[] person = new Person2[num];
for(int i = 0; i < person.length; i++) {
System.out.print((i+1) + "번째 선수 이름>> ");
person[i] = new Person2(sc.next());
}
while(true) {
for(int j = 0; j < person.length; j++) {
sc.nextLine();
System.out.println("[" + person[j].name + "]: ");
if(person[j].getPlay()){
System.out.println("승리입니다!!");
break;
}else {
System.out.println("아쉽군요");
}
}
}
}
}
|
cs |
12. 문자열을 입력받아 한 글자씩 회전시켜 모두 출력하는 프로그램을 작성하라.
· 클래스로 작성할 필요 없이 메인에서 작성할 것
· [H·int] Scanner.nextLine()을 이용하면 빈칸을 포함하여 한 번에 한 줄을 읽을 수 있다.
· 참고
· 작성
1
2
3
4
5
6
7
8
9
10
11
12
13
|
class Love {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("문장을 입력해주세요.");
String str = sc.nextLine();
for(int i = 1; i < str.length(); i++) {
System.out.print(str.substring(i));
System.out.println(str.substring(0, i));
}
sc.close();
}
}
|
cs |
'bitcamp > JAVA' 카테고리의 다른 글
배열_연습문제 (0) | 2021.01.17 |
---|---|
배열 (0) | 2021.01.17 |
메소드 오버로딩과 String 클래스 (0) | 2021.01.17 |
클래스 변수와 메소드 (0) | 2021.01.10 |
기타_연습문제 (0) | 2021.01.10 |