배열 (23.04.25)

·2023년 4월 26일
0

Coding Test

목록 보기
8/39
post-thumbnail

✏️ 문제 1

정수 5개를 입력받아 배열을 초기화하고
검색할 정수를 하나 입력받아 배열에서 같은 수가 있는 인덱스를 찾아 출력
배열에 같은 수가 없을 경우 "일치하는 값이 존재하지 않습니다" 출력
입력 0 : 5
입력 1 : 8
입력 2 : 9
입력 3 : 10
입력 4 : 4
검색할 값 : 8
인덱스 : 1

(1) 내 풀이

		Scanner sc = new Scanner(System.in);

		int[] arr = new int[5];
		boolean flag = false;
		
		for(int i = 0; i < arr.length; i++) {
			
			System.out.printf("입력 %d : ", i);
			int input = sc.nextInt();
			arr[i] = input;
		}
		
		System.out.print("검색할 값 : ");
		int input2 = sc.nextInt();
		
		for(int i = 0; i < arr.length; i++) {
			if(input2 == arr[i]) {
				System.out.println("인덱스 : " + i);
				
				flag = true;
			}
		}
		
		if(!flag) {
			System.out.println("일치하는 값이 존재하지 않습니다.");
		}

(2) 다른 풀이

      Scanner sc = new Scanner(System.in);
      
      int[] arr = new int[5];
      
      for(int i=0; i<arr.length; i++) {
         System.out.print("입력 " + i + " : ");
         arr[i] = sc.nextInt();
         // 입력받을 값을 바로 배열의 각 인덱스에 대입하는 코드 작성
      }
      
      System.out.print("검색할 값 : ");
      int input = sc.nextInt();
      
      boolean flag = false;
      
      System.out.print("인덱스 : " );
      // "인덱스 : "까지는 먼저 출력을 해 놓고
      
      for(int i=0; i<arr.length; i++) {
         
         if(arr[i] == input) {
            System.out.print(i + " ");
            // 그 이후 for문을 돌려 해당하는 인덱스 번호를 순서대로 출력하기
            
            flag = true;
         }
      }
      
      if(!flag) {
         System.out.println("일치하는 값이 존재하지 않습니다.");
      }

✏️ 문제 2

문자열을 입력받아 문자 하나하나를 배열에 넣고 검색할 문자가 문자열에
몇 개 들어가 있는지 개수와 몇 번째 인덱스에 위치하는지 인덱스를 출력하세요.
문자열 : application
문자 : i
application에 i가 존재하는 위치(인덱스) : 4 8
i 개수 : 2

(1) 풀이

		Scanner sc = new Scanner(System.in);
		
		System.out.print("문자열 : ");
		String input = sc.nextLine();
		
		System.out.print("문자 : ");
		char ch = sc.nextLine().charAt(0); // 입력받은 문자열에서 0번 인덱스 문자를 반환
		// 		      String -> char
		
		char[] arr = new char[input.length()]; // 입력받은 문자열 길이만큼 배열 생성

		int count = 0; // input에 일치하는 ch가 몇 개 있는지 카운트하는 변수
		System.out.print(input + "에" + ch + "가 존재하는 위치(인덱스) : " + i);
		
		for(int i = 0; i < arr.length; i++) {
			
			// 배열 대입
			arr[i] = input.charAt(i);
			// 입력받은 문자열에서 i번째 인덱스 문자를 arr[i]에 대입
			
			// 검색 + 카운트
			if(ch == arr[i]) { // 검색 조건
				count++;
				System.out.print(i + " ");
	
			}
		}
		System.out.println("\n" + ch + " 개수 : " + count);

✏️ 문제 3

사용자가 배열의 길이를 직접 입력하여 그 값만큼 정수형 배열을 선언 및 할당하고
배열의 크기만큼 사용자가 직접 값을 입력하여 각각의 인덱스에 값을 초기화하세요.
그리고 배열 전체 값을 나열하고 각 인덱스에 저장된 값들의 합을 출력하세요.
   	정수 : 5
    배열 0번째 인덱스에 넣을 값 : 4
    배열 1번째 인덱스에 넣을 값 : -4
    배열 2번째 인덱스에 넣을 값 : 3
    배열 3번째 인덱스에 넣을 값 : -3
    배열 4번째 인덱스에 넣을 값 : 2
    4 -4 3 -3 2
    총합 : 2

(1) 내 풀이

		Scanner sc = new Scanner(System.in);
		
		System.out.print("정수 : ");
		int input = sc.nextInt();
		
		int sum = 0;
		
		int[] arr = new int[input];
		
		for(int i = 0; i < arr.length; i++) {
			System.out.print("배열 " + i + "번째 인덱스에 넣을 값 : ");
			int input2 = sc.nextInt();
			arr[i] = input2;
			sum += arr[i];
		}
		
		for(int i = 0; i < arr.length; i++) {
			System.out.print(arr[i] + " ");
		}
		
		System.out.println();
		System.out.println("총 합 : " + sum);

(2) 다른 풀이

      Scanner sc = new Scanner(System.in);
      
      System.out.print("정수 : ");
      int input = sc.nextInt();
      
      int[] arr = new int[input];
      
      int sum = 0;
      String value = ""; // 문자열을 저장할 변수 value를 선언하고 빈 문자열로 초기화
      
      for(int i=0; i<arr.length; i++) {
         System.out.print("배열 " + i + "번째 인덱스에 넣을 값 : ");
         arr[i] = sc.nextInt();
         sum += arr[i];
         value += arr[i] + " ";
      }
      
      System.out.println(value);
      System.out.println("총 합 : " + sum);

✏️ 문제 4

주민등록번호 번호를 입력받아 성별을 나타내는 숫자 이후부터 *로 가리고 출력하세요.

주민등록번호(-포함) : 123456-1234567
123456-1******

(1) 풀이

		Scanner sc = new Scanner(System.in);
		
		System.out.print("주민등록번호(-포함) : ");
		String input = sc.nextLine();
		
		char[] arr = new char[input.length()];

		for(int i = 0; i < arr.length; i++) {
			arr[i] = input.charAt(i);
			
			if(i >= 8) { // 8번 인덱스 이상부터는 *로 출력
				arr[i] = '*';
			}
			
			System.out.print(arr[i]);
		}
profile
풀스택 개발자 기록집 📁

0개의 댓글