inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비

좋은 코드를 작성했는지 아는 방법

157

jhjikhsdsdw

작성한 질문수 27

0

좋은 코드를 작성했는지 판단하는 방법이 있는지 궁금합니다.

코드를 작성하면서  좋은 접근 방식인지 아닌지 판단하는 방법이 있나요? 

예를 들어 문자열 10번 문제에서 저는 다음과 같은 코드를 작성했습니다.

강사님과 달리 접근을 문자 t가 나온 위치의 인덱스를 배열에 담고 문자열의 각 값과 인덱스를 빼서 최소값을 찾는 방식으로

코드를 작성해서 답은 맞췄는데, 강의를 듣고 나니 부족한게 많아 보여서요.. 

import java.util.ArrayList;
import java.util.Scanner;

// s에서 c가 나오는 위치들을 모두 찾고 
// c의 모든 인덱스 - s의 모든 문자들의 인덱스가 가장 작은 값들만 출력

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        String s = sc.next();
        char c = sc.next().charAt(0);

        int index = 0;
        ArrayList<Integer> dis = new ArrayList<Integer>();

        for(char tmp : s.toCharArray()) {
            if(tmp == c) {
                dis.add(index);
            }
            index++;
        }

        for(int i = 0; i < s.length(); i++) {
            int min = Math.abs(dis.get(0) - i);
            for(int j = 1; j < dis.size(); j++) {
                int tmp = Math.abs(dis.get(j) - i);
                if(min > tmp && tmp >= 0)
                    min = tmp;
            }
            System.out.print(min + " ");
        }
    }
}

코테 준비 같이 해요! java

답변 1

0

김태원

안녕하세요^^

좋은 코드냐 아니냐를 판단하는 기준은 코드의 효율성(시간복잡도)가 좋은지 먼저 따지고 그다음 메모리 낭비는 없었는지, 그리고 가독성은 좋은지 등을 기준으로 저는 판단합니다. 

안녕하세요. 바뀐 채점사이트 관련해서 문의드립니다.

0

74

2

갑자기 채점 사이트가 바뀌었어요

0

51

1

문제 리스트 페이지

0

43

1

채점 사이트 관련 질문드립니다

0

42

1

봉우리 문제 질문입니다

0

103

2

씨름 선수 문제에서 각 선수의 몸무게나 키가 같을 수도 있다면?

0

74

0

이 코드랑 영상 코드중에 뭐가 더 좋은 코드인가요?

0

81

0

가중치 방향 그래프에서 가중치가 0인 간선을 표현하는 방법

0

76

1

좌표 정렬 문제 이 코드가 왜 틀린지 모르겠습니다 ㅠㅠ

0

96

2

6-7 강의에서

0

55

1

6-6. 장난꾸러기 질문 있습니다.

0

52

1

강의 수강후 코딩테스트

0

127

1

answer 변수 사용 여부

0

50

1

2중 for문

1

97

2

2-11. 임시반장정하기 (Runtime Error)

0

67

1

혹시 LinkedList 같은 자료 구조들은 따로 배우지 않나요?

0

75

1

이런 풀이는 어떨까요

0

51

1

자바 스트림 방식의 효율성 질문 드립니다.

0

62

1

알고리즘 자료 구조들..

0

69

1

StringBuilder vs BufferdWriter

0

53

1

원더랜드(프림)

0

56

1

이런 코드는 어떤가요?

0

67

1

bfs 풀이

0

63

1

병합정렬

0

58

1