Algorithm

    배열 요소 정렬

    배열 요소를 역순으로 정렬하기 int n = 5; int[] a = new int[n]; for (int idx = 0; idx < n/2; idx++) { a[idx] = a[n - idx - 1]; } // 배열 요소에 값을 읽어 들여 역순으로 정렬 import java.util.Arrays; import java.util.Scanner; class ReverseArray { //--- 배열 요소 a[idx1]과 a[idx2]의 값을 바꿈 ---// static void swap(int[] a, int idx1, int idx2) { int t = a[idx1]; a[idx1] = a[idx2]; a[idx2] = t; } //--- 배열 a의 요소를 역순으로 정렬 ---// static void r..

    배열의 요솟값 결정하기

    프로그램 실행 중 배열의 요솟수 결정하기 // 배열 요소의 최댓값 출력(값을 입력받음) import java.util.Scanner; class MaxOfArray { // 배열 a의 최댓값을 구하여 반환 static int maxOf(int[] a) { int max = a[0]; for (int i = 1; i max) max = a[i]; return max; } public static void main(String[] args) { Scanner stdIn = new Scanner(System.in); System.out.println("키의 최댓값을 구합니다."); System.out.print("사람 수: "); int num = stdIn...

    논리 연산과 드모르간 법칙

    논리 연산자의 단축 평가 논리 연산자의 단축 평가 논리 연산의 식 전체를 평가한 결과가 왼쪽 피연산자의 평가 결과만으로 결정되는 경우 오른쪽 피연산자를 평가하지 않는데 이를 단축 평가(short circuit evalation)이라 한다. ex) 1 == 1 || 2 == 1 => true || false (왼쪽에서 이미 결정됌) 드모르간 법칙 드모르간 법칙(De Morgan's laws)은 '각 조건을 부정하고 논리곱을 논리합으로, 논리합을 논리곱으로 바꾸고 다시 전체를 부정하면, 원래의 조건과 같다' 라는 것 x && y == !(!x || !y) x || y == !(!x && !y) 구조적 프로그래밍이란? 더보기 입력하는 곳 하나와 출력하는 곳 하나를 갖는 구성 요소만을 사용하여, 이들을 계층적으..

    시간 복잡도 (Time Complexity)

    시간복잡도(Time Complexity) 입력의 크기와 문제를 해결하는데 걸리는 시간의 상관관계 알고리즘 문제를 풀 때 단순히 '복잡도'라고 하면 보통 시간복잡도를 의미한다. 코딩 테스트에서의 '시간 제한'은 작성한 프로그램이 모든 입력을 받아 이를 처리하고 실행 결과를 출력하는 데까지 걸리는 시간을 의미 빅오표기법(Big-O Notation) 주어진 식을 값이 가장 큰 대표항만 남겨서 나타내는 방법 즉 함수의 상한만을 나타낸다. O(N) : 5N + 3, 2N + 10lgN, 10N O(N^2) : N^2 + 2N + 4, 6N^2 + 20N + 10lgN O(NlgN) : NlgN + 30N + 10, 5NlgN + 6 O(1) : 5, 16, 36 예를 들어 N개의 데이터가 있을 때, 모든 데이터의..

    복잡도

    복잡도(Complexity)란? 복잡도 = 알고리즘의 성능을 나타내는 척도 복잡도는 두 가지로 나눌 수 있다. 시간 복잡도(Time Complexity) 특정한 크기의 입력에 대하여 알고리즘이 얼마나 오래 걸리는지를 의미 알고리즘을 위해 필요한 연산의 횟수 공간 복잡도(Space Complexity) 특정한 크기의 입력에 대하여 알고리즘이 얼마나 많은 메모리를 차지하는지 의미 알고리즘을 위해 필요한 메모리의 양 512MB = 1.2억개의 int 동일한 기능을 수행하는 알고리즘이 있다면 일반적으로 복잡도가 낮을수록 좋은 알고리즘이다. 출처 : 이것이 취업을 위한 코딩 테스트다 with 파이썬 (나동빈 저)

    [프로그래머스] 부족한 금액 계산하기

    https://programmers.co.kr/learn/courses/30/lessons/82612 코딩테스트 연습 - 1주차 새로 생긴 놀이기구는 인기가 매우 많아 줄이 끊이질 않습니다. 이 놀이기구의 원래 이용료는 price원 인데, 놀이기구를 N 번 째 이용한다면 원래 이용료의 N배를 받기로 하였습니다. 즉, 처음 이 programmers.co.kr 문제 설명 새로 생긴 놀이기구는 인기가 매우 많아 줄이 끊이질 않습니다. 이 놀이기구의 원래 이용료는 price원 인데, 놀이기구를 N 번 째 이용한다면 원래 이용료의 N배를 받기로 하였습니다. 즉, 처음 이용료가 100이었다면 2번째에는 200, 3번째에는 300으로 요금이 인상됩니다. 놀이기구를 count번 타게 되면 현재 자신이 가지고 있는 금액..