코딩테스트(4)
-
백준 BOJ 14888 - 연산자 끼워넣기 : JAVA 자바 풀이
문제 N개의 수로 이루어진 수열 A1, A2, ..., AN이 주어진다. 또, 수와 수 사이에 끼워넣을 수 있는 N-1개의 연산자가 주어진다. 연산자는 덧셈(+), 뺄셈(-), 곱셈(×), 나눗셈(÷)으로만 이루어져 있다. 우리는 수와 수 사이에 연산자를 하나씩 넣어서, 수식을 하나 만들 수 있다. 이때, 주어진 수의 순서를 바꾸면 안 된다. 예를 들어, 6개의 수로 이루어진 수열이 1, 2, 3, 4, 5, 6이고, 주어진 연산자가 덧셈(+) 2개, 뺄셈(-) 1개, 곱셈(×) 1개, 나눗셈(÷) 1개인 경우에는 총 60가지의 식을 만들 수 있다. 예를 들어, 아래와 같은 식을 만들 수 있다. 1+2+3-4×5÷6 1÷2+3+4-5×6 1+2÷3×4-5+6 1÷2×3-4+5+6 식의 계산은 연산자 우선..
2022.06.29 -
백준 BOJ 15652 - N과 M(4) : JAVA 자바 풀이
문제 자연수 N과 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오. 1부터 N까지 자연수 중에서 M개를 고른 수열 같은 수를 여러 번 골라도 된다. 고른 수열은 비내림차순이어야 한다. 길이가 K인 수열 A가 A ≤ A ≤ ... ≤ A ≤ A를 만족하면, 비내림차순이라고 한다.2K K-1 1 입력 첫째 줄에 자연수 N과 M이 주어진다. (1 ≤ M ≤ N ≤ 8) 출력 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해야 한다. 예제 입력 1 3 1 예제 출력 1 1 2 3 예제 입력 2 4 2 예제 출력 2 1 1 1 2 ..
2022.06.29 -
완전 탐색에 대해서
코딩 테스트에 있어서 완전 탐색 문제의 정답은 무조건 구하는 치트키이다. 완전 탐색 문제를 해결하기 위해 확인해야 하는 모든 경우를 전부 탐색하는 방법 백 트래킹을 통해야 하는 상황을 해결하는 방법 모든 코딩 테스트에서는 기본적으로 접근해야 한다. 많은 연습을 통해 익숙해지도록 하자 또한, 부분 점수를 얻기에 가장 좋은 문제이다. 왜냐, 수 많은 객체를 전부 탐색하기에는 시간 복잡도가 일반적으로 높다. 코딩 테스트에서 흔히 나오는 완전 탐색의 종류로는 네 가지가 존재한다. 1. N개 중 중복을 허용해서 M개를 순서있게 나열하는 문제 2. N개 중 중복을 허용해서 M개를 고르는 문제 3. N개 중 중복 없이 M개를 순서있게 나열하는 문제 4. N개 중 중복 없이 M개를 고르는 문제 코딩 테스트에서 메인 함..
2022.06.28 -
코딩 테스트 준비
필수 테크닉 정렬 문자열 처리 Dynamic Programming Dijkstra Algorithm BFS, DFS 완전 탐색 이분 탐색 높은 난이도로 나오는 알고리즘 배열에서의 DP 트리에서의 DP 투 포인터 위상 정렬 자료 구조 HashMap Queue Stack Priority Queue Dynamic Array 문제를 올바른 순서로 이해하기 읽기 : 시간, 메모리 제한, 문제 전체를 꼼꼼히 이해 : 제공되는 정보 정리, 예제 데이터에 대한 이해 파악 : 가능한 최대, 최소 정답에 맞는 데이터 직접 생성, 키워드가 되는 단어 체크 시간과 공간 복잡도 계산 시간, 공간 복잡도 계산 시간을 아끼기 : 코딩할 가치가 있나 파악 코드를 효율적으로 함수화해서 구현 자주 사용하는 코드를 함수로 생성 함수 호..
2022.06.27