[JAVA] 백준 2588번 곱셈
·
Computer Science/자료구조와 알고리즘
1. 문제 (세 자리 수) × (세 자리 수)는 다음과 같은 과정을 통하여 이루어진다. (1)과 (2)위치에 들어갈 세 자리 자연수가 주어질 때 (3), (4), (5), (6)위치에 들어갈 값을 구하는 프로그램을 작성하시오. (1)과 (2)를 입력받고, 첫째 줄부터 넷째 줄까지 차례대로 (3), (4), (5), (6)에 들어갈 값을 출력한다. 2. 코드 import java.util.Scanner; public class Main{ public static void main (String[] args){ Scanner sc=new Scanner(System.in); int A,B; A=sc.nextInt(); B=sc.nextInt(); System.out.println(A*(B%100%10)); S..
알고리즘의 시간 복잡도 분석
·
Computer Science/자료구조와 알고리즘
알고리즘 속도의 기준 -> "프로그램 수행 시간" 부적합 - 프로그램 수행시간은 사용한 프로그래밍 언어, 하드웨어, 운영체제, 컴파일러, 등의 요소에 의해 바뀔 수 있기 때문 - 프로그램 실제 수행 시간이 다양한 입력에 대한 실행 시간을 반영하지 못하기 때문 알고리즘 수행시간 측정 반복문이 수행되는 횟수로 측정 - 반복문이 지배한다.(dominate) : 반복문이 전체 코드를 좌지우지함 시간 복잡도 (time complexity) - 가장 널리 사용되는 알고리즘의 수행 시간 기준 - 알고리즘이 실행되는 동안 수행하는 기본적인 연산의 수를 입력 크기에 대한 함수로 표현한 것 ( 기본적인 연산 : 더 작게 쪼갤 수 없는 최소 크기의 연산) - 중첩된 반복문의 내부에 있는 기본적 연산 : 더 쪼갤 수 X ->..
알고리즘 평가 기준
·
Computer Science/자료구조와 알고리즘
알고리즘 평가 기준 - (1) 시간 (2) 공간 1. 시간 -적은 시간 사용 = 더 빠르게 동작 - (프로그래밍 대회) 알고리즘 수행 속도와 특성을 분석하는 능력 요구 2. 공간 - 적은 공간 사용 = 더 적은 용량의 메모리 사용 두 기준은 서로 상충하는 경우가 많음 (메모리 사용량을 희생해 속도를 높이거나, 속도를 희생해 메모리 사용량을 줄인 알고리즘 多)
간결한 코드 작성하는 방법
·
Computer Science/자료구조와 알고리즘
간결한 코드 작성 1. 적극적으로 코드 재사용 하기 - 코드 모듈화 - 반복되는 코드를 함수나 클래스로 분리해 재사용 2. 표준 라이브러리 공부하기 - 자료구조(큐, 스택, 등) 혹은 알고리즘(정렬, 등)의 기초적 알고리즘 직접 작성 X -> 표준 라이브러리에서 찾아 사용 3. 항상 같은 형태로 프로그램 작성하기 - 자주 작성하는 알고리즘이나 코드 등에 대해서는 한번 검증된 코드 작성 후 이 코드를 꾸준히 사용하기 4. 일관적이고 명료한 명명법 사용하기 5. 모든 자료를 정규화 해서 저장하기 - 같은 자료를 두가지 형태로 저장하지 않기 - ex) 각도를 표현하는 방법 한가지로 정의하기, 입력받는 유리수를 기약분수로 표현해주는 함수 정의하기, 등 - 정규화 : 프로그램이 자료를 입력받거나 계산하자마자 이뤄..
문제 해결 알고리즘 단계
·
Computer Science/자료구조와 알고리즘
프로그래밍 대회를 위한 여섯 단계 문제 해결 알고리즘 1. 문제를 읽고 이해하기 2. 문제를 익숙한 용어로 재정의하기 3. 어떻게 해결할 지 계획 세우기 4. 계획 검증하기 5. 프로그램으로 구현하기 6. 어떻게 풀었는지 돌아보고, 개선할 방법이 있는지 찾아보기 1. 문제를 읽고 이해하기 문제의 궁극적인 목적 + 사소한 제약 조건 이해 2. 재정의와 추상화 문제를 자신의 언어로 풀어쓰기 문제의 본질을 어떠한 방식으로 재구성하느냐에 따라 어려운 문제를 쉽게 해결할 수 있는 문제로 만들 수 있음 3. 계획 세우기 문제를 어떤 방식으로 해결할지 결정하고 사용할 알고리즘과 자료구조 선택 4. 계획 검증하기 설계한 알고리즘이 모든 경우에 요구 조건을 정확히 수행하는지 증명 수행에 걸리는 시간과 사용하는 메모리가 ..