inflearn logo
강의

Khóa học

Chia sẻ kiến thức

Thử nghiệm mô phỏng kiểm tra mã hóa (với Java)

2. Sắp xếp lại 2 hàng và N cột (Mảng 2d)

유효한 솔루션이 없는 조건

209

youngjoon32021893

3 câu hỏi đã được viết

1

유효한 솔루션이 없는 경우를

colsum의 모든 값의 합이 upper + lower의 값과 다른 경우로 진행을 해보았는데, 결국에 결과값만 정확히 나오면 되는건가요!!?

public class Sec02 {

public static void main(String[] args) {

// TODO Auto-generated method stub

int upper = 2; 

    int lower = 2;

    String s = "";

    int[] colsum = {2, 1, 1};

    int sum = 0;

    int[][] result = new int[2][colsum.length];

    //유효성 체크방법, colsum의 각 배열 값의 총합과 upper + lower이 같은 경우만 실행

    //colsum의 총합 구하는 for문

    for(int i = 0 ; i < colsum.length ; i++) {

     sum += colsum[i];    

    }

    //colsum의 총합과 upper + lower이 같은 경우만 실행

    if(sum == (upper + lower)) {

      for(int i = 0 ; i < colsum.length ; i++) {

        //upper을 먼저 쓰는 로직으로 진행

        if(colsum[i] == 2) {

          upper--;

          lower--;

          result[0][i] = 1;

          result[1][i] = 1;

        }

        else if(colsum[i] == 1 && upper > 0) {

          upper--;

          result[0][i] = 1;

          result[1][i] = 0;

        }

        else if(colsum[i] == 1 ) {

          lower--;

          result[0][i] = 0;

          result[1][i] = 1;

        }

        else if(colsum[i] == 0) {

          result[0][i] = 0;

          result[1][i] = 0;

        }

          

      }

      //출력 구문

      s += "[";

      for(int i = 0 ; i < result.length ; i++) {

      

      for(int j = 0 ; j < result[i].length ; j++) {

      

      //배열의 시작일 경우, [를 넣어줌

      if(j == 0) {

      s += "[";

      }

      

      // String에 값을 넣어줌

      s += result[i][j];

      

      //upper , lower 배열의 끝이면 ]를, 그렇지 않으면 , 를 찍어주는 if문

      if(j == (result[i].length-1)) {

      s += "]";

      }

      else {

      s += ",";

      }

      

      

      }

      

      //배열 사이 ,를 찍는 IF문, 마지막 배열일시에는 찍지 않음

      if( i < result.length-1) {

      s += ",";

      }

      

      }

      s += "]";

      System.out.println(s);

    }

    

    //colsum의 총합과 upper + lower이 다를 경우 []값만 출력.

    else{

    System.out.println("[]");

    }

}

}

java 코테 준비 같이 해요!

Câu trả lời 1

2

pushupman

진영준 안녕하세요?

이 문제는 2dArray ->List<List> 로 표시하는 문제로 자주 출제되고 있어서 중요한 문제죠 ^^

꼭 알아야할 개념입니다. 

질문주신 내용 :

유효한 솔루션이 없는 경우를 colsum의 모든 값의 합이 upper + lower의 값과 다른 경우로 진행을 해보았는데, 결국에 결과값만 정확히 나오면 되는건가요!!?

=> 유효한 솔루션이 없다는게 무슨 의미인지 정확히 모르겠습니다.^^

우리가 유효하게 솔루션을 만들어야 하는게 프로그래밍, 코딩이라고 생각하는데요 

그래서 말씀하신거처럼(아래그림참조) colsum = upper+lower 이렇게 되어야겠죠?

그리고 문제에서 리턴타입을 List<List<Integer>> 이걸로 맞춰 주셔야 합니다.

이문제는 List<List<Integer>>  <=> 이차원배열 변환 개념도 물어보는거라서, 

자유자재로 할 수 있어야 합니다.

주신소스를 보니 리스트 형태로 괄호 '[' 를 만드셨는데요, 연습삼아서 그렇게 하신거 같은데

이 문제는  List<List<Integer>>으로 리턴해주셔야 합니다.

영상 다운로드는 안되나요?

0

3

0

IntelliJ IDEA 체험 만료

0

8

1

부하 테스트 시 설정 관련 질문드립니다

1

20

1

HelloSpringApplication.java 클래스 실행 오류

0

10

1

build 시 에러 해결방법 공유(docker.desktop 업데이트 -> 의존성 버전 수정)

0

19

1

예외처리 3강 문의

0

19

1

챌린지 시작일 문의

0

33

0

26년2회 실기기출은 언제쯤...

0

51

2

네이버 API | '검색 - 책' API 제공 중단

0

39

2

ArticleReadService 관련 질문

0

27

1

kafka 이벤트 발행 실패 시 at-least-once를 보장하는 방법이 궁금합니다.

1

68

1

이론 공부법 요약본 버전 업데이트 문의

0

35

2

domain에 @Entity 와 Repository를 함께 둔 이유가 궁금합니다

1

48

1

해당 프로젝트를 똑같이 따라하려니 spring installer가 버전이 17부터 가능하네요.

0

23

1

Part 2 듣기전 복습하던 중, 아키텍처에 관한 질문이 있습니다.

0

45

2

테스트는 인터페이스를 대상으로 만드는것에 대해 궁금한 점이 있습니다.

0

30

1

Jib 이미지 빌드에서 docker credential 관련으로 이슈가 있다면

1

76

2

리뉴얼 시기

0

47

2

다른 풀이방법질문

1

243

1

Priority Queue 대신 LinkedList 사용 이유를 알 수 있을까요??

1

394

2

result 가 없습니다.

1

262

1

영상 오디오가 너무 이상해요 ㅠㅠ

1

304

1

입출력 예시가 잘못된거 아닌가요??

1

186

2

가장 바깥 괄호제거

1

563

3