Skip to content

[TC]  #319

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) { }

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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