메뉴로 건너 뛰기 내용으로 건너 뛰기
커뮤니티 COMMUNITY
제목 [Jason Lee] New AP Computer Science A Coursework(2nd version) 전반부(Chapter 01~08)_27강 완성
27 Lesson_27_Traversal Algorithms 27
작성자 alv*** 등록일 2019-03-23 오후 9:53:48

package chapter08;

public class _13_AlternativeIterations_P1 {

    public static void main(String[] args) {
       
        String str = "aaabbaa";
       
        // 1. finish method findNthOccurrence()
        // 2. use findNthOccurrence() to find
        // 1st~9th occurrences of "aa" in str.
        for( int i=1; i<=9; i++) {
            System.out.print(findNthOccurrence(str,"aa", i)+"  ");
        }
        System.out.println();
       
    }

public static int findNthOccurrence(String str, String target, int n) {
        int index = -1;
        while(n>0) {
             index = str.indexOf(target, index+1);
             if(index==-1) {
                 break;
             }
             n--;
        }
        return index ;

-------------

위에서 for( int i=1; i<=9; i++)를 돌리고 있으면 public static int findNthOccurrence(String str, String target, int n)의 n에 1,2,3,4,5,6,7,8,9 가 들어가는 거가 맞나요?

그리고 만약에 맞다면, 예를 들어 i가 9가 된다면 while loop에서 n이 0이하가 될 때까지 9번 돌아가야 하는건가요?

console에서 '0  1  5  -1  -1  -1  -1  -1  -1 ' 이렇게 나오던데 왜 n번 복사 안 되는지 모르겠어요.

2019-03-30 오전 12:22:18

 

 

package chapter08;

public class _13_AlternativeIterations_P1 {

    public static void main(String[] args) {
        
        String str = "aaabbaa";
        
        // 1. finish method findNthOccurrence()
        // 2. use findNthOccurrence() to find 
        // 1st~9th occurrences of "aa" in str.
        for( int i=1; i<=9; i++) {
            System.out.print(findNthOccurrence(str,"aa", i)+"  ");
        }
        System.out.println();
        
    }

public static int findNthOccurrence(String str, String target, int n) {
        int index = -1;
        while(n>0) {
             index = str.indexOf(target, index+1);
             if(index==-1) {
                 break;
             }
             n--;
        }
        return index ;

-------------

위에서 for( int i=1; i<=9; i++)를 돌리고 있으면 public static int findNthOccurrence(String str, String target, int n)의 n에 1,2,3,4,5,6,7,8,9 가 들어가는 거가 맞나요? 

====================>> 맞아요.

그리고 만약에 맞다면, 예를 들어 i가 9가 된다면 while loop에서 n이 0이하가 될 때까지 9번 돌아가야 하는건가요?

console에서 '0  1  5  -1  -1  -1  -1  -1  -1 ' 이렇게 나오던데 왜 n번 복사 안 되는지 모르겠어요.

==========================================================

n 에 1 이 들어가면 find 1st occurrence, 즉 "aaabbaa" (굵은부분) 이찾아져서 0

n 이 2 면 find 2nd occurrence "aaabbaa"  여긴 1

n 이 3 이면 find 3rd occurrence "aaabbaa" 여긴 5

그 이후엔 aa 가 없지요.

따라서 못찾았으므로 -1 만 나오는거에요.


Top