Skip to content

[TC]  #319

@blossun

Description

@blossun

엣지 케이스

  • 빈 배열인 경우 (input으로 들어오는 배열의 범위를 확인해서 체크할지 여부 판단)
    ex. 배열의 길이를 가지고 확인해야하는 경우
  • 빈 문자열인 경우
      public String solution(String p) {
          if (p.isEmpty()) {
              return "";
          }
  • 값의 범위
    • int를 넘어가는 경우 long으로 변환해줄 것
      ex. 각 요소의 범위가 정수 최소 ~ 최대 이므로 더했을 경우 long 형으로 처리해야 함
    • 문제조건 확인
      ex. 지나가는 자동차 쌍의 수가 1,000,000,000을 초과하면 -1을 반환
  • 배열의 요소 n개를 비교해야한다. → input 배열의 길이가 n개 미만일 경우 처리 필요
          if (A.length < 3) {
              return 0;
          }
  • 값의 경계
    ex. 절댓값을 비교해야하는 경우, 최솟값(음수의 최댓값) → 절댓값으로 변환할 때, overflow 조심. 따로 확인해야한다.
  • 곱셈과 덧셈을 비교해서 선정해야하는 경우 21.02.23 [백준] 1744 수 묶기 #150
    "1과 2는 곱하는 것 보단 더하는게 더 크다"
    ⇒ 1의 경우에는 곱하지말고 더해야함!!!!
    1 2 ⇒ 3
    1 1 ⇒ 2

효율성

  • 로직 수행 전에 확인해볼 필요가 없는 케이스들은 미리 반환하도록 한다.
    ex. 모든 케이스를 확인해야하는지 전체의 1/2만 확인해도 되는지 등등

실수

  • 초기 최댓값, 최소값 설정 확인. 계산하기 귀찮으면 Integer.MAX_VALUE로 처리
  • 음수인 경우와 양수인 경우를 나눠서 확인해야하는지 체크
  • 배열의 input 확인
    • arr[x][y] 일 때, 들어오는 값의 순서가 y,x 순으로 들어올 수도 있다.
    • 인덱스의 시작위치가 arr[0][0]이 아니라 arr[1][1]인지 주의
  • input과 return 값이 int 범위여도 중간 계산에서 int 범위를 넘는 경우가 있는지 확인 → 실수형 비교를 해야한다.
  • 문자열 input → 공백이 연속으로 오거나, 문자열의 마지막이 공백일 때 이를 처리해줘야할지 확인
    21.06.29 [프로그래머스] 12951 JadenCase 문자열 만들기 #239
  • 배열 크기 지정 시, 로직 상 접근하는 index의 범위를 벗어나지는 않는지 확인
    ex. 배열의 크기가 0또는 1로 들어오는데 로직에서 배열의 index 접근 범위 사이즈가 3인 경우
  • 21.02.21 [백준] 15903 카드 합체 놀이 #148
    • m == 0 일 때, 고려하지 못한 코드 (실수)
    // 틀린 코드
    while (m-- > 0) { }
    // 수정 코드
    while (--m >= 0) { }

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions