본문 바로가기

Codility

CodingTest : MaxCounters (Codility) 주어진 정수에 부여된 특정 명령을 수행하고, 완성된 배열을 반환하는 문제 .. 효율성 테스트도 있기 때문에, 시간복잡도를 고려해서 코딩해야한다. 단순 흐름대로 하면 2중 for문이 나오게 되는데, 이를 회피하기 위한 최적의 알고리즘을 찾는 것이 관건 최대 값을 모든 배열에 세팅하는 순간이 올 때 .. 모든 배열에 바로 반영하는 것이 아니라, 이를 기억했다가 최종적으로 1회만 반영하는 알고리즘을 설계해야한다. class Solution { public int[] solution(int N, int[] A) { int maxCount = 0; int bigCount = 0; int[] answer = new int[N]; boolean[] applyMax = new boolean[N]; for(int cmd.. 더보기
코딩테스트 중요 포인트 요 근래 다양한 코딩테스트 문제를 풀면서 중요하거나 인지해야할 부분을 나열해보려 합니다. ​ ​ 1. 가장 중요한 것은 '문제 인지' 입니다. 문제에서 요구하는 것이 무엇인지를 정확히 파악해야합니다. 문제에 작성된 한 줄 한 줄 지문에 맞춰 코딩을 하게 되면, 특이 케이스에 걸려 결국 실패할 확률이 높습니다. ​ 2. 코드 작성 전 풀이 방안을 고민해야합니다. 풀이 방안 1안이 생각났다고, 바로 코드를 작성하는 것이 아니라 .. 적어도 더 나은 방법은 없을까 ? 생각하며 두, 세 가지 정도는 고민할 필요가 있습니다. 코드 작성 중, 다른 방안이 생각나서 급하게 수정하면.. 버그나 시간초과에 걸릴 확률이 높아질 것입니다. ​ 3. 유형에 따른 처리 방식 학습 스택, 큐, 리스트 등 선형 자료구조를 활용해야.. 더보기