+ 00 00 0000

Have any Questions?

Simple Coding – 코딩테스트

Simple Coding – 코딩테스트

📃 요약

코딩테스트는 IT 회사에 들어가기 위한 보편적인 평가방법이 되고 있습니다.
아직 포트폴리오 및 기술면접으로 치루는 회사도 있으나, 점차 코딩테스트로 서류전형 전/후에 코딩의 기본 기술이 있는지
확인하는 전형으로 많이 채택되고 있습니다.
코딩테스트 연습 사이트의 대표적으로는 백준, 프로그래머스, 코드업 등이 있습니다.

요소 기술은 아래와 같습니다.

요소 기술 :

– 프로젝트 키워드 : 코딩테스트

– 언어 : 자바 & 알고리즘

백준 기초 문제 :

코딩테스트를 위한 기초 문제 : 기본적으로 언어 사용법는 기초 문제 해결능력을 체크하고, 대체로 쉬운문제로 이루어져 있음
백준 등급 : 브론즈 < 실버 < 골드 < 플래티넘 < 다이아 < 루비
( 브론즈 : 제일 쉬움 ~ 루비 : 제일 어려움 )

  • IT 회사는 대체로 골드 수준까지의 문제가 골고루 출제됨, 그 이상은 알고리즘 대회 수준이므로 준비할 필요 없음 ( 플래티넘, 다이아 , 루비 )
    골드 이상 : 대기업 위주 코딩테스트 문제들, 아주 어려움 예) 카카오, 네이버 등
    골드 미만 : 중소기업 , 스타트업 위주 코딩테스트 문제들

📃 기술 구현

스펙 :

- jdk 17
- 알고리즘

백준 기초 문제 : 100문제 (Simple 문제집)

  • 주요 알고리즘 종류 : 코딩테스트에서는 주로 구현/시뮬레이션 문제가 자주 등장함
    - 구현     : 익히 아는 알고리즘 또는 풀이를 코딩으로 변환하는 것
    - 시뮬레이션 : 문제에 지시된 규칙을 토대로 코딩을 하는 것
    - 누적합    : 이전 합계를 계속 새로운 값과 더해서 누적시켜 현재합계를 구하는 것

코딩 테스트 풀이를 위한 여러가지 팁 & 유용한 함수들


  • 0) 입출력 :



  • 입력 :


    Scanner scanner = new Scanner(System.in); // 키보드 입력 객체 생성

    String input = scanner.next(); // 공백/줄바꿈(엔터) 까지의 입력된 1단어 가져오기
    int num = scanner.nextInt(); // 공백/줄바꿈(엔터) 까지의 입력된 1숫자 가져오기
    long num2 = scanner.nextLong(); // 공백/줄바꿈(엔터) 까지의 입력된 1숫자 가져오기
    double num3 = scanner.nextDouble(); // 공백/줄바꿈(엔터) 까지의 입력된 1숫자 가져오기

    String line = scanner.nextLine(); // 입력된 1줄 가져오기


  • 출력 :


    System.out.println("문자열");  // 문자열 출력 , 줄바꿈
    System.out.print("문자열"); // 문자열 출력 , 줄바꿈 없음


  • 1) 숫자 : 백/십/일의 자리 구해서 응용하기


    //      일의자리=> 123을 10으로 나눈 나머지는 3이므로 123%10으로 구할 수 있다                : 123%10
    // 십의자리=> 정수형 변수에 123/10을 연산하면 12이므로, 12%10으로 십의 자리를 구할 수 있다. : (123/10)%10
    // 백의자리=> 같은 방법으로 123/100의 몫이 1이므로, 백의 자리를 구할 수 있다. : 123/100 의 몫( 정수 : 몫, 소수 : 나머지 )
    int one = iSecond%10; // 1의 자리
    int ten = iSecond/10%10; // 10의 자리
    int hundred = iSecond/100; // 100의 자리


  • 2) 누적합 : 반복문과 함께 사용되는 알고리즘
    반복문이 실행되는 횟수에 따라 이전 합계와 현재합계가 누적되어 저장되는 알고리즘



  • 1 ~ 10까지 최종 누적합 구하기



    사용법 : 현재합계 = 이전합계 + 새로운값;

int sum = 0; // 누적합 변수

for(int i=1; i<=10; i++) {
sum = sum + i; // 누적합 코드 (sum 변수의 이전 합계를 계속 더한다.)
}

System.out.println(sum);

- 3) 최대값/최소값/절대값 함수 : 
```java
    Math.max(값, 값2)
    Math.min(값, 값2)
    Math.abs(값)

  • 4) 문자열 함수 :


    String[] input = 문자열.split("구분값");   // 구분값으로 문자열을 자름, 배열이 됨
    String len = 문자열.length(); // 문자열 길이
    String str = 문자열.charAt(인덱스번호); // 문자열 인덱스번호에 해당하는 문자 가져오기


  • 5) 자료구조 : List/ArrayList, Set/HashSet


    // 일반 배열을 사용성이 좋게 만든것 
    // 배열의 크기가 입력한 만큼 자동으로 증가함
    List<Integer> list = new ArrayList<>(); // List 배열
    list.add(값); // 배열 값 넣기
    list.get(인덱스번호); // 배열 값 가져오기
    list.set(인덱스번호, 값); // 배열 값 수정하기

    // 집합을 표현한 배열 : 중복된 값이 입력되면 자동으로 제거됨
    Set<Integer> set = new HashSet<>(); // Set 집합 배열
    set.add(값); // 집합 값 넣기

  • 6) 자료구조 조작 객체 : Collections 클래스

    • 유용한 함수들을 제공 : 최대값/최소값/정렬 등
    Collections.frequency(리스트, 값);                        // 리스트에 값이 몇개 있는지 세기 함수
    Collections.max(리스트);                                 // 리스트에 최대값 함수
    Collections.min(리스트);                                 // 리스트에 최소값 함수
    Collections.sort(리스트);                                // 리스트를 오름차순 정렬
    Collections.sort(리스트, Collections.reverseOrder());    // 리스트를 내림차순 정렬
  • 7) 자료구조 조작 객체 : Arrays 클래스
    Arrays.toString(배열);                                 // 1차원 배열을 문자열로 출력
    Arrays.deeptoString(배열);                             // 2차원 배열을 문자열로 출력
    Arrays.fill(배열, 채울값);                               // 채울값으로 배열 초기화
    Arrays.sort(배열);                                     // 오름차순 정렬, 퀵정렬 계열
    Arrays.sort(chArr, Collections.reverseOrder());       // 내림차순 정렬

    List list = new ArrayList(Arrays.asList(배열));        // 배열을 리스트로 변환

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다