본문 바로가기

알고리즘 문제 풀이

Q16. IsoGram // 이중포문의 몰랐던 점 깨달음!!

 

 

 

 

===================== 해답 2가지 ===========================

이중 for문 사용할때는 결국엔 i = j 의 경우가 발생한다.

이 경우 생각한 값이 달라질 수 있는 변수가 되므로 반드시 조건문으로 어떻게 처리할 것인지 적어주는게 중요하다.

 

해답 1번.

package com.codestates.coplit; 
import java.util.*;

public class Solution { 
  public boolean isIsogram(String str) {
    /*
    str 입력받아 아이소그램인지 여부 리턴.
    <주의사항>
    빈문자열 = true
    대소문자 구분 x
    <접근>
    1. 모두 대문자로 변경
    2. str.charAt(i)와 str.charAt(j)가 같은게 있는지 확인
    */
    boolean answer = true;
    String iso = str.toUpperCase();

    if (iso.length() == 0) {
      answer = true;
      return answer;
    }
    for (int i = 0; i < iso.length(); i++) {
      for (int j = 1; j < iso.length(); j++) {
        if ( i == j ) {   여기
          continue;  
        } 
        if (iso.charAt(i) == iso.charAt(j)) {
        answer = false;
        return answer;
        }
      }
    }
    return answer;
  } 
}

해답 2번.

if (iso.length() == 0) {
      answer = true;
      return answer;
    }
    for (int i = 0; i < iso.length(); i++) {
      for (int j = 1; j < iso.length(); j++) {
        if ( i != j ) {    여기
          if (iso.charAt(i) == iso.charAt(j)) {
          answer = false;
          return answer;
          }
        }
      }
    }
    return answer;