250x250
디벨롭쑤
코딩이 좋아?
디벨롭쑤
전체 방문자
오늘
어제
  • 분류 전체보기
    • 코딩 테스트
    • React
    • JAVA
    • 홈 베이킹
    • JavaScript..
    • centOS
    • Vue.js

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • React
  • 베린이
  • 자바스크립트
  • 스프링
  • 리액트 공부
  • Next.js
  • jQuery
  • 홈베이킹
  • 리액트 정리
  • 리액트
  • Java
  • 리액트 스프링 연동
  • useState
  • 생활코딩
  • 컴포넌트
  • 에어프라이기
  • 베이킹
  • js
  • 에어프라이어
  • 리액트 스프링

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
디벨롭쑤

코딩이 좋아?

코딩 테스트

[자료구조와 알고리즘: JAVA 백준] 코딩테스트 연습 - 선택 정렬5

2022. 3. 11. 14:57
728x90
반응형

선택 정렬 정리내용

더보기

https://chambray-harmonica-445.notion.site/526ab2adba434540bd70a314a75f38ca

 

선택 정렬

✔️ 배열과 연결 리스트

chambray-harmonica-445.notion.site


[백준]

23889번: 알고리즘 수업 - 선택 정렬5

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.Arrays;
import java.util.StringTokenizer;

public class Main{

	public static BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
	public static BufferedWriter bf = new BufferedWriter(new OutputStreamWriter(System.out));
	
	public static String selection_sort( int[] A, int[] B ) { 
	    
		int maxIndex=0;
		
		// 처음부터 똑같은 배열일 경우
		if(Arrays.equals(A, B)) {
			return "1";
		}
		
		// 선택 정렬
		for (int i=A.length-1; i>0; i--) {
			maxIndex = i;

			for(int j=0; j<=i; j++) {
				
				if(A[maxIndex] < A[j]) {
					maxIndex = j;
				}
			}
			
			// 자리 바꿈(큰 수가 뒤로)
			if(i != maxIndex) {
				
				int AValue = A[i];
				
				A[i] = A[maxIndex];
				A[maxIndex] = AValue;

				// 자리가 바뀐 배열A와 배열 B가 같을 경우
				if(Arrays.equals(A, B)) {
					return "1";
				}
			}
			
		}
		// 배열A와 배열B가 같지 않을 경우
		return "0";
	}
	
	public static void main(String[] args) {
		
		try {
			
			int n = Integer.parseInt(br.readLine());	// 배열 개수 입력

			StringTokenizer stA = new StringTokenizer(br.readLine());	// 배열A 입력
			StringTokenizer stB = new StringTokenizer(br.readLine());	// 배열B 입력
			
			// 배열A, B 선언
			int[] A = new int[n];
			int[] B = new int[n];
			
			for(int i=0; i < n; i++) {
				// 배열 원소 넣기
				A[i] = Integer.parseInt(stA.nextToken());
				B[i] = Integer.parseInt(stB.nextToken());
			}
			
			bf.write( selection_sort(A, B) );
			bf.close();

		} catch (IOException e) {
			e.printStackTrace();
		}
	}
}

백준 23881번과 유사한 코드이나 교환 횟수 변수를 삭제하고 두 개의 배열을 입력받고 조건을 추가해 줌.

2022.03.11 - [코딩 테스트] - [자료구조와 알고리즘: JAVA 백준] 코딩테스트 연습 - 선택 정렬1

 

 

# JAVA에서 배열 비교

 : Arrays.equals(배열1, 배열2)

 

※ 제출 시 틀린 이유

: 처음에 똑같은 배열이 입력 되었을 때의 조건을 만들어 주지 않음.

반응형

 

728x90
저작자표시 (새창열림)

'코딩 테스트' 카테고리의 다른 글

[자료구조와 알고리즘: JAVA 백준] 코딩테스트 연습 - 에디터  (0) 2022.03.12
[자료구조와 알고리즘: JAVA 백준] 코딩테스트 연습 - 선택 정렬1  (0) 2022.03.11
[자료구조와 알고리즘: JAVA 프로그래머스] 코딩테스트 연습 - 입국심사  (0) 2022.02.25
    '코딩 테스트' 카테고리의 다른 글
    • [자료구조와 알고리즘: JAVA 백준] 코딩테스트 연습 - 에디터
    • [자료구조와 알고리즘: JAVA 백준] 코딩테스트 연습 - 선택 정렬1
    • [자료구조와 알고리즘: JAVA 프로그래머스] 코딩테스트 연습 - 입국심사
    디벨롭쑤
    디벨롭쑤
    하고 싶은 게 많지만 하기 싫은 것도 많은 디벨로퍼의 이야기

    티스토리툴바