++조회수 2천이 넘게되어 자세하게 내용을 추가하였습니다 ㅠㅠ (2024.01.01)
++아래내용 끝까지 읽어주세요
--------------------------------------------------------------
2024.01.01 업데이트 완료!
Java코딩테스트를 준비하고 계시다면 연습을 할 수 있는 기초 셋팅이 필요합니다.
코딩테스트는 일반적으로
1.문제를 읽고
2.코드를 작성하여
3.컴파일을 하여 코드를 실행시켜보고
4.오류코드가 없으면 코드를 제출한다.
의 순서로 이루어져 있습니다.
물론, 과제를 내주는 코딩테스트도 있겠지만, 저희는 현장 또는 비대면으로 실시하는 제한시간내에 문제를 풀어야 하는 코딩테스트 문제를 해결해야 겠죠? 우선 많은 문제들을 읽어보고 풀어보는 것이 중요합니다. 저는 백준과 프로그래머스중에서 프로그래머스를 선호하는데요, 왜냐하면 별도의 IDE없이 코드를 작성해서 풀어보고 정답을 맞춰볼 수 있기 때문입니다.
여기서 문제를 읽고 풀 수 있습니다. 하지만 오류가 어디서 나는지 정확하게 확인해보기 어렵고 문법상의 오류를 어떻게 고쳐야하는지 알려주지 않습니다. 따라서 인텔리제이(IntelliJ) IDE를 설치하여 스스로 코드를 작성해보고 문법상의 오류를 파악하는것이 중요하겠죠?
이제는 더이상 스캐너를 가지고 사용자로부터 입력을 받아서 푸는 유형의 코딩테스는 없는것 같습니다. 실행하면 해당 함수에 자동으로 매개변수를 던져서 작성하신 코드의 return값이 올바른지, 제한된 시간복잡도 내에서 구현했는지를 체크하여 검사합니다. 또한 예외적인 케이스나 실패한 케이스를 -1로 처리해야 하는 경우의 수 까지 올바르게 처리했는지 확인해야 합니다.
제 블로그에 작성된 예시를 하나 보겠습니다.
바로 pccp 1번 문제인데요, 고려해야할 사항을 잘 작성한 뒤, 예외없이 문제를 해결해야 합니다.
의사코드를 먼저 작성하여 프로그램을 구현하는 것도 좋은 방법입니다.
예를 들어 배열의 수를 모두 더하는 프로그램이라고 했을 때,
주석으로 다음과 같이 작성합니다.
// 1.입력 받은 배열의 길이를 구한다.
// 2.배열의 길이만큼 for문을 돌면서 합계를 구한다.
// 3.합계를 리턴한다.
이렇게 의사코드를 먼저 작성한다음, 프로그램을 작성하면 순서를 놓치지 않고 모두 작성할 수 있게 됩니다.
문제 풀이별 기초적인 JAVA의 사용법은 제가 초보자를 위해 쉬운 문제풀이들을 블로그에 올려놓았습니다.
해당 문제를 푸는것을 한 번 보시고, 내가 java로 알고리즘 테스트를 준비해도 괜찮을지 확인해 보시기 바랍니다.
이런 기초적인 문제풀이 과정을 모두 거쳤다면, 다음으로는 java의 api를 이용해야 합니다. 자바의 lang패키지나, util패키지를 활용하여
손쉽게 원하는 알고리즘을 구현하는데 도움을 받을 수 있습니다. 해당 내용은 추후 블로그에서 자세하게 다뤄보도록 하겠습니다.
질문사항이 있으시면 댓글로 남겨주시기 바랍니다.
감사합니다.
--------------------------------------------------------------
과거버전
코딩테스트를 볼 때 언어를 선택하는 것이 첫번째 단계이다.
각각의 프로그래밍 언어별 특성을 고려하여 언어를 선택하고 문제를 푼다면 효율적으로(코드작성 시간과 학습량 대비 효과) 문제를 풀 수 있다.
Java를 알고리즘 프로그래밍 언어로 선택하는 일반적인 이유는 다음과 같다.
1. 대학교 학부시절 많이 써봐서 익숙한 언어라.
2.파이썬 이나 C를 코딩테스트에서 지원하지 않아서
3.기타 등등..
Java 코딩테스트를 하기 위해서는 IntelliJ를 설치해서 환경을 구성해서 연습하는것이 좋다.
또는 온라인 코딩테스트 연습 사이트에서 직접 코드를 작성해도 무방하나, 디버깅 과정이 힘들 수 있다.
IntelliJ 설치와 JDK설치는 구글링을 하면 관련정보가 많이 나오니 따로 언급하지는 않겠다.
대표적으로 많이 쓰는 자바 문법을 정리해본다. (인텔리제이에서 쓰는 단축키와 함께)
메인 메소드 작성하기(how to code a main method)
psvm + enter
public static void main(String[] args){} 를 자동으로 작성해준다.
Scanner 추가하기 (사용자 키보드로 입력받는 도구)
Scanner sc = new Scanner(System.in)
int a = sc.nextInt();
우리가 마트에서 바코드를 찍으면 그 바코드의 상품코드 ex)12345678 가 포스기에 찍히듯이,
자바에서 스캐너라는것을 통해 사용자가 키보드로 문자나 숫자를 입력하고 엔터를 치면 그 정보를 변수에 저장할 수 있다.
Scanner를 사용하기 위해서는
import java.util.Scanner;
를 클래스 상단에 추가시켜주고, 스캐너의 이름을 sc로 붙여준다.(일반적으로 sc를 많이씀)
그리고 저장할 변수 a에 = 을붙이고 sc 스캐너이름 뒤에 . 을 붙이면 nextLine, nextInt, next0000등 어떤걸 입력받을지
골라서 붙여주면 된다.
조건 연산자
a = (x>y) ? x: y;
(x>y) 가 참이면 x를 반환하고, 거짓이면 y를 반환한다.
기초는 이정도로하고 다음글부턴 자료구조로 넘어간다.
문자열 자르기
String s = "hello world!";
s.substring(3,5); // 3하고 4까지 출력 lo 만 나옴
그럼 , 나 스페이스로 구분된걸 짤라서 각각 자른걸 배열에 넣는법은 ?
Split 을 사용한다.
String s="apple,kiwi,good,no,pu";
String[] ss = s.split(",");
'ETC > Java 알고리즘' 카테고리의 다른 글
프로그래머스 - 문자열 여러 번 뒤집기 [JAVA] 문제 풀이 및 해설 (0) | 2023.10.29 |
---|---|
프로그래머스[JAVA] - 소수 찾기 (0) | 2021.09.27 |
Java 코딩테스트 준비 ⓸- 자료구조 Queue 큐 (0) | 2021.09.21 |
Java 코딩테스트 준비 ⓷- 자료구조 Hash Map (해쉬맵) (0) | 2021.09.21 |
Java 코딩테스트 준비 ⓶-자료구조 기초 (0) | 2021.09.19 |