전체 글(93)
-
[개발 상식] 객체 지향 프로그래밍(OOP)
[개발 상식] 객체 지향 프로그래밍(OOP) 해당 시리즈는 Interview_Question_for_Beginner를 기반으로 추가 학습을 진행해 작성하였습니다. 목차[개발 상식] 객체 지향 프로그래밍(OOP) 객체 지향 프로그래밍(OOP)이란? 4가지 특징 장점 단점 SOLID : 5대 원칙 디자인패턴 Reference 객체 지향 프로그래밍(OOP)이란? 실제 세계를 모델링하여 ‘객체’들의 상호작용으로 서술하는 프로그래밍 기법 인간 중심적 프로그래밍 패러다임 프로그램을 ‘객체’ 단위로 나누어 이들이 연결되도록 함. 객체는 오퍼레이션으로 정의된다. 객체의 핵심은 기능 제공이다. 오퍼레이션 : 객체의 기능 절차지향이란? 순차적인 처리에 따라 프로그램 전체가 유기적으로 연결되도록 만든 프로그래밍 기법 프로시..
2018.08.21 -
[유클리드 호제법] / [백준(baekjoon) 9613] GCD(최대공약수) 합
문제 백준 9613 최대공약수(GCD) 의 합을 구하시오. 원리 유클리드 호제법, GCM, LCD 설명 포스트 참고! 구현 java 1.import java.util.*; 2. 3.public class Main { 4. public static void main(String[] args) { 5. Scanner sc = new Scanner(System.in); 6. int t = sc.nextInt(); 7. for (int k = 0; k < t; k++) { 8. int n = sc.nextInt(); 9. int[] inputs = new int[n]; 10. for (int i = 0; i < n; i++) inputs[i] = sc.nextInt(); 11. 12. long sum = 0; ..
2018.08.20 -
[유클리드 호제법] / [백준(baekjoon) 1934] 최소공배수(LCM)
[유클리드 호제법] / [백준(baekjoon) 1934] 최소공배수(LCM) 문제 백준 1934 최소공배수(LCM) 를 구하시오. 원리 최소공배수(LCM) A,B의 최소공배수 = A * (B/최대공약수) 최대공약수 : 유클리드 호제법 사용 유클리드 호제법, GCM, LCD 설명 포스트 참고! 구현 java 1.import java.util.*; 2. 3.public class Main { 4. public static void main(String[] args) { 5. Scanner sc = new Scanner(System.in); 6. int n = sc.nextInt(); 7. for (int i = 0; i < n; i++) { 8. int a = sc.nextInt(); 9. int b = ..
2018.08.20 -
[분할 정복] / [백준(baekjoon) 1780] 종이의 개수
[백준(baekjoon) 1780] 대회 or 인턴 문제 백준 1780 N x N 크기의 행렬은 -1, 0, 1의 값을 가진다. 다음과 같은 규칙으로 종이를 자른 후, -1, 0, 1로만 채워진 종이의 개수를 차례대로 출력하시오. 만약 종이가 모두 같은 수로 되어 있다면 이 종이를 그대로 사용한다. (1)이 아닌 경우에는 종이를 같은 크기의 9개의 종이로 자르고, 각각의 잘린 종이에 대해서 (1)의 과정을 반복한다. 해결 알고리즘 전형적인 분할 방식 문제이다. 방법 큰 종이를 9개의 작은 종이로 나누는 과정을 반복한다. 시작점, n을 매개변수로 받아 구하고자 하는 종이의 크기 및 값들에 접근할 수 있다. 3 * 3 for문을 돌린다. 작은 종이의 크기는 n / 3이 될 것이다. 종이의 크기 n == 1까..
2018.08.11 -
[백준(baekjoon) 1080] 행렬
[백준(baekjoon) 1080] 행렬 문제 백준 1080 0과 1로만 이루어진 행렬 A, B가 존재한다. 3*3크기의 부분 행렬에 있는 모든 원소를 뒤집는 연산을 이용해 A -> B로 변환하는데 필요한 최소 횟수는? 해결 알고리즘 그리디 알고리즘을 사용해 해결하였다. 값이 변경된 부분을 기준으로 뒤집어 간 후 남은 부분은 동일 여부에 따라 판단하면 된다고 가정하였고, 그 증명이 가능했기 때문. 그리디 알고리즘에 대해 잘 모르신다면 이 글을 참고하세요! 방법 1. A와 B 비교 값을 저장한 check 배열 A와 B의 각 위치를 비교하면 다음과 같은 결론을 낼 수 있다. 값이 같다. : 연산을 거치지 않았거나 짝수 번의 연산을 거쳐 값이 돌아옴. 값이 다르다. : 연산을 홀수 번 거쳐 값이 변경됨. 이를..
2018.08.06 -
[백준(baekjoon) 2011] 암호코드
문제 백준 2011 5000자리 이하의 입력 값(숫자)이 주어질 때, 아래와 같은 규칙으로 암호화 할 때, 가능한 문자의 경우의 수는 A : 1, B : 2, … , Z : 26 예시 : 25114를 영어로 바꾸면 ”BEAAD” = {2, 5, 1, 1, 4} “YAAD” = {25, 1, 1, 4} “YAN” = {25, 1, 14} “YKD” = {25, 11, 4} “BEKD” = {2, 5, 11, 4} “BEAN” = {2, 5, 1, 14} 해결 정답률이 낮아서 어려울지 알았지만, DP를 사용하면 생각보다 간단하게 풀린다. 그런데 엄청 틀렸다. 예외처리를 안했기 때문…. 내 생각에 이 문제는 DP가 아니라 예외처리 문제이다…. 예외처리 문제만 읽고 처음엔 0 input이 안 들어오는줄 알았지만..
2018.07.28