알고리즘 평가 기준
·
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. 계획 검증하기 설계한 알고리즘이 모든 경우에 요구 조건을 정확히 수행하는지 증명 수행에 걸리는 시간과 사용하는 메모리가 ..
[JAVA] 백준 10430번 나머지
·
Computer Science/자료구조와 알고리즘
1. 문제 (A+B)%C는 ((A%C) + (B%C))%C 와 같을까? (A×B)%C는 ((A%C) × (B%C))%C 와 같을까? 세 수 A, B, C가 주어졌을 때, 위의 네 가지 값을 구하는 프로그램을 작성하시오. 2. 코드 import java.util.Scanner; public class Main{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); int A,B,C; A=sc.nextInt(); B=sc.nextInt(); C=sc.nextInt(); System.out.println((A+B)%C); System.out.println(((A%C) + (B%C))%C); System.out.println((..
[C] 백준 10869번 사칙연산
·
Computer Science/자료구조와 알고리즘
1. 문제 두 자연수 A와 B가 주어진다. 이때, A+B, A-B, A*B, A/B(몫), A%B(나머지)를 출력하는 프로그램을 작성하시오. 2. 코드 #include int main(){ int A,B; scanf("%d %d",&A,&B); printf("%d\n%d\n%d\n%d\n%d\n",A+B,A-B,A*B,A/B,A%B); } 3. 풀이 A,B를 scanf로 입력받아 출력한다. 한줄씩 띄어쓰는 것은 \n으로 표현하였다. https://www.acmicpc.net/problem/10869 10869번: 사칙연산 두 자연수 A와 B가 주어진다. 이때, A+B, A-B, A*B, A/B(몫), A%B(나머지)를 출력하는 프로그램을 작성하시오. www.acmicpc.net
[Java] 백준 1008번 A/B
·
Computer Science/자료구조와 알고리즘
1. 문제 두 정수 A와 B를 입력받은 다음, AXB를 출력하는 프로그램을 작성하시오. 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((double)A/B); } } 3. 풀이
[Java] 백준 10998번 AXB
·
Computer Science/자료구조와 알고리즘
1. 문제 두 정수 A와 B를 입력받은 다음, AXB를 출력하는 프로그램을 작성하시오. 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); } } 3. 풀이 백준에서 자바로 제출할 때는 클래스 이름을 Main으로 해줘야 한다. 그렇지 않으면 컴파일 에러가 발생한다. https://www.acmicpc.net/problem/10998 10998번: A×B 두 정수 A와 B를 입력받은 다음, A×B를 출력하는 프로그..
[C] 백준 1001번 A-B
·
Computer Science/자료구조와 알고리즘
1. 문제 두 정수 A와 B를 입력받은 다음, A-B를 출력하는 프로그램을 작성하시오. 2. 코드 #include int main(){ int A,B; scanf("%d %d",&A,&B); printf("%d",A-B); } 3. 풀이 C에서 입력받는 방법 : scanf( )함수 - 매개변수로 변수의 주소값을 사용하기 때문에 변수명 앞에 &를 붙여야 한다. C에서 출력하는 방법 : printf( )함수 - 숫자를 출력하려면 큰 따옴표 안에 %d를 넣어야한다. https://www.acmicpc.net/problem/1001 1001번: A-B 두 정수 A와 B를 입력받은 다음, A-B를 출력하는 프로그램을 작성하시오. www.acmicpc.net