Algorithm
-
[Codility] CyclicRotationAlgorithm 2020. 11. 20. 01:21
CyclicRotation 코딜리티 Lesson2에 있는 CyclicRotation에 대한 기록입니다. 문제 정수형의 배열과 K의 회전 수가 주어집니다. 회전 수만큼 맨 끝 요소는 맨 앞으로 이동시켜가며 배열을 한칸씩 우측으로 시프트 시키는 문제입니다. 자세한 문제는 여기를 참고해주세요. 나의 풀이 ArrayList Collection을 생성하여 할당 K만큼 루프를 돌며 마지막 인자를 꺼내 삭제하고 add(index, data)를 통해 한 칸씩 밀어냄 A에 재 배치 풀이보고서 (클릭) 리뷰 처음에는 Queue를 통해 풀어보려고 하다가 실패했습니다. ArrayList에 할당하여 요소를 컨트롤하는 게 익숙하기도 하고 편해서 ArrayList를 통해 풀었는데, 알고리즘 문제에 익숙한 분들은 배열만으로 간단히 ..
-
[Codility] BinaryGapAlgorithm 2020. 11. 19. 01:36
BinaryGap 평소 알고리즘에 약한 편이라Codility에서 풀 수 있는 가장 쉬운 문제 Lesson1을 연습 삼아 풀어 본 것에 대한 기록입니다. 문제 문제는 10진수의 정수가 입력이 되면 그 10진수를 2진수로 변경했을 때, 1과 1사이의 0의 개수 중 가장 큰 수를 구하는 것입니다. 예를 들어 1000001001 라는 2진수의 경우 1 사이의 0의 개수는 5와 2, 그중 큰 수인 5를 최종 출력하면 됩니다. 자세한 문제는 여기를 눌러주세요. 나의 풀이 Integer.toBinaryString()으로 입력 N을 2진수로 변경 split("")으로 String 배열로 전환 String 배열을 역순으로 돌며 첫 1이 들어온 순간부터 tempResult 1씩 증가 그다음 1이 들어왔을 때, tempRe..
-
[Algorithm] 버전 비교 알고리즘 (Version Compare)Algorithm 2019. 7. 26. 23:39
프로젝트 진행 중 두 개의 버전을 비교해야 할 일이 있었습니다. 단순 버전 코드 비교가 아니고 major.minor.hotfix 형식의 String형 비교였기 때문에, 복잡한 알고리즘은 아니지만 나중에 사용할 수도 있어 기록합니다. 목표 두 개의 버전이 주어졌을 때 비교하여 큰 버전을 반환하시오. 버전은 major.minor.hotfix(1.0.0)의 형태로 제한됩니다. 입력 예시 "1.0.0", "2.0.2" 출력 예시 "2.0.2" 코드