일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 백준 알고리즘
- LANG
- 예외처리
- 현대암호
- HTML
- jvm
- 자료구조
- lang package
- 재귀호출기본
- JSP
- 소수판정
- 백준
- 연결된 예외
- 객체지향
- 객체
- 프로그래밍
- try&catch
- 2884
- OOP
- java
- 암호론
- class
- BufferedWrite
- 디렉티브
- 자동 형변환
- 알고리즘
- 공개키 암호
- bubble-sort
- 클래스 패스
- 형변환 연산자
Archives
- Today
- Total
코드일기장
배열 요소의 최댓값, 배열 요소 역순, 두 배열의 비교, 기수변환 본문
배열 요소의 최댓값
어느 배열에 요소중 제일 큰 값을 찾는 알고리즘에 대해 알아보자
🔑 코드
더보기
import java.util.Scanner;
public class Hello {
static int N=0;
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
do {
System.out.print("요솟수: ");
N=sc.nextInt();
}while(N<=0||N==1);
int[] arr=new int[N];
Compare c=new Compare(arr);
}
}
class Compare{
Scanner sc=new Scanner(System.in);
int tmp;
Compare() {}
Compare(int[] arr){
for(int i=0;i<arr.length;i++) {
System.out.print("arr["+i+"]= ");
arr[i]=sc.nextInt();
}
System.out.println("===========================");
System.out.println("arr배열의 최대값은:"+checked(arr));
}
int checked(int[] a) {
tmp=a[0];
for(int i=1;i<a.length;i++) {
if(tmp<a[i])
tmp=a[i];
}
return tmp;
}
}
요솟수: 5
arr[0]= 1
arr[1]= -50
arr[2]= 982
arr[3]= 2022
arr[4]= 15
===========================
arr배열의 최대값은:2022
출력 결과
배열 요소 역순
어느 배열의 요소들을 역순으로 다시 정렬시켜보자.
🔑 코드
더보기
import java.util.Scanner;
public class Hello {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int N=0;
do {
System.out.print("요솟수: ");
N=sc.nextInt();
}while(N<=0||N==1);
int[] arr=new int[N];
for(int i=0;i<arr.length;i++) {
System.out.print("arr["+i+"]: ");
arr[i]=sc.nextInt();
}
Reserve r=new Reserve(arr);
System.out.println("역순 정렬 마침");
r.callArray(arr);
}
}
class Reserve{
Reserve(){}
Reserve(int[] a){
for(int i=0; i<a.length/2; i++) {
reserve2(a, i, a.length-i-1);
}
}
void reserve2(int[] a,int b,int c) {
for(int i=0;i<a.length;i++) {
System.out.print(a[i]+" ");
}
System.out.println();
int tmp=a[b];
a[b]=a[c];
a[c]=tmp;
System.out.println("a["+b+"]와 a["+c+"]를 교환했습니다.");
}
void callArray(int[] a) {
for(int i=0; i<a.length; i++) {
System.out.println("arr["+i+"]= "+a[i]);
}
}
}
요솟수: 5
arr[0]: 1
arr[1]: 2
arr[2]: 3
arr[3]: 4
arr[4]: 5
1 2 3 4 5
a[0]와 a[4]를 교환했습니다.
5 2 3 4 1
a[1]와 a[3]를 교환했습니다.
역순 정렬 마침
arr[0]= 5
arr[1]= 4
arr[2]= 3
arr[3]= 2
arr[4]= 1
출력 결과
쓸 대 없이 코드가 길지만 최대한 클래스와 중복되는 코드를 줄여보았다.
배열 비교
두 개 이상의 배열을 비교해 배열의 요소가 다 같은지 확인하는 프로그램
🔑 코드
더보기
public class Hello {
static Scanner sc=new Scanner(System.in);
public static void main(String[] args) {
byte b;
do {
Compare c=new Compare();
System.out.print("A배열의 요솟수: ");
int N1=sc.nextInt();
int[] A=new int[N1];
c.method(A,"A");
System.out.print("B배열의 요솟수: ");
int N2=sc.nextInt();
int[] B=new int[N2];
c.method(B,"B");
System.out.println("A배열과 B배열은"+(c.compare(A,B)?"같습니다":"다릅니다"));
System.out.print("다시하겠습니까? (예: 1 아니요: 2)");
b=sc.nextByte();
}while(b==1);
System.out.print("시스템 종료");
}
}
class Compare{
static Scanner sc=new Scanner(System.in);
void method(int[] a,String str) {
for(int i=0;i<a.length;i++) {
System.out.print(str+"["+i+"]= ");
a[i]=sc.nextInt();
}
}
boolean compare(int[] a, int[] b){
if(a.length!=b.length) {
return false;
}
for(int i=0;i<a.length;i++) {
if(a[i]!=b[i])
return false;
}
return true;
}
}
A배열의 요솟수: 2
A[0]= 1
A[1]= 2
B배열의 요솟수: 2
B[0]= 1
B[1]= 2
A배열과 B배열은같습니다
다시하겠습니까? (예: 1 아니요: 2)2
시스템 종료
A배열의 요솟수: 2
A[0]= 2
A[1]= 1
B배열의 요솟수: 2
B[0]= 1
B[1]= 2
A배열과 B배열은다릅니다
다시하겠습니까? (예: 1 아니요: 2)1
A배열의 요솟수:
기수변환
음이아닌 정수를 2~36진수로 변환하는 프로그램
🔑 코드
더보기



public class Hello {
public static void main(String[] args) {
Rv r=new Rv();
int number; int numberset; char[] c=new char[32];
number=r.numberInput();
numberset=r.numbersetInput();
int numberlength=r.Rv(number,numberset,c); //진수교환
System.out.print("구하려는 "+numberset+"진수의 값은=");
for(int i=numberlength;i>=0;i--) {
System.out.print(c[i]);
}
}
}
class Rv{
static Scanner sc=new Scanner(System.in);
int Rv(int x,int y,char[] c){
int digit=0;
String str="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
do {
c[digit++]=str.charAt(x%y);
x/=y;
}while(x!=0);
return digit;
}
int numberInput() {
int num;
do {
System.out.print("음이 아닌 정수를 입력하세요: ");
num=sc.nextInt();
}while(num<0);
return num;
}
int numbersetInput() {
int num;
do {
System.out.print("바꿀려는 진수를 입력하세요 (2~36): ");
num=sc.nextInt();
}while(num<2||num>36);
return num;
}
}



'컴퓨터 과학 > 자료구조' 카테고리의 다른 글
[Java] 자바의 LinkedList (0) | 2022.07.04 |
---|---|
[Java] ArrayList (0) | 2022.03.28 |
[Java] List Interface (리스트 인터페이스) (0) | 2022.03.18 |
[Java] 컬렉션 프레임웍(collections framework), Collection인터페이스 (0) | 2022.03.18 |
Java로 이용한 버블정렬 (1) | 2021.11.14 |
Comments