전체 글(93)
-
[개발 상식] 함수형 프로그래밍
해당 시리즈는 Interview_Question_for_Beginner를 기반으로 추가 학습을 진행해 작성하였습니다. 목차 [개발 상식] 함수형 프로그래밍 함수형 프로그래밍 가장 큰 특징 2가지 1. Immutable data 2. First-class-citizen 로서의 ‘function’ Reactive programming(반응형 프로그래밍) 왜 함수형 프로그래밍이 주목 받을까? Reference 함수형 프로그래밍 위키백과 함수형 프로그래밍은 자료 처리를 수학적 함수의 계산으로 취급하고 상태와 가변 데이터를 멀리하는 프로그래밍 패러다임의 하나이다. 명령형 프로그래밍에서는 상태를 바꾸는 것을 강조하는 것과는 달리, 함수형 프로그래밍은 함수의 응용을 강조한다. 가장 큰 특징 2가지 1. Immutab..
2018.08.22 -
[백준(baekjoon) 6588] 소수 구하기
[백준(baekjoon) 6588] 소수 구하기 문제 백준 6588 ‘4보다 큰 모든 짝수는 두 홀수 소수의 합으로 나타낼 수 있다.’ 하나 이상의 테스트 케이스 T가 주어질 때(0이 나오면 끝), 다음과 같은 규칙으로 출력하라 답이 존재 : T = a + b출력 (답이 여러개일 경우 b - a가 가장 큰 것) 답이 없음 : Goldbach's conjecture is wrong.출력 예시 8 = 3 + 5 20 = 3 + 17 42 = 5 + 37 해결 알고리즘 소수를 만드는 방식은 에라토스테네스의 체를 이용하였다. 자세한 방법은 에라토스테네스의 체로 소수 구하기 참고! 방법 T = a + b를 만족하는 홀수 소수 a, b는 많을 것이다. 따라서, 가장 큰 b - a를 찾기 위해 조건을 만족하는 가장 ..
2018.08.22 -
[백준(baekjoon) 1929] 소수 구하기 / 에라토스테네스의 체
[백준(baekjoon) 1929] 소수 구하기 문제 백준 1929 M 이상 N 이하인 소수를 모두 출력하시오. (1≤M≤N≤1,000,000) 해결 알고리즘 두가지 방식으로 풀었다. 1. 소수로 나누기 소수인지 확인하기 위해 자신보다 작은 소수들로 모두 나누어 확인하는 방법 n개의 수에 자신보다 작은 소수들의 개수k만큼 모두 확인하여야 한다. 곱해서 n이 되는 수 중 가장 큰 수인 이하로만 검사하면 된다. 2. 에라토스테네스의 체 소수의 배수들 지워나가는 방법 O(n log log n) 시간복잡도를 가진다. 자세한 내용 방법 소수 여부를 저장해 둘 [N + 1]크기의 배열을 생성한다. 가장 작은 소수 2부터 시작하여 수들을 차례대로 확인한다. 지워지지 않은 경우 해당 수는 소수이다. 소수의 배수들을 모..
2018.08.22 -
[개발 상식] TDD
해당 시리즈는 Interview_Question_for_Beginner를 기반으로 추가 학습을 진행해 작성하였습니다. 목차 [개발 상식] TDD TDD TDD 개발 순서 TDD의 특징 (장점) TDD의 의문점들 (TDD를 사용하므로써 생길 수 있는 문제들) Reference TDD (Test-Driven Development) 매우 짧은 개발 사이클의 반복에 의존하는 소프트웨어 개발 프로세스로, 테스트가 코드 작성을 주도하는 개발방식 TDD 개발 순서 개발자는 요구되는 새로운 기능에 대한 자동화된 테스트케이스를 작성 해당 테스트를 통과하는 가장 간단한 코드를 작성 상황에 맞게 리팩토링하는 과정을 거침 TDD의 특징 (장점) Add a test 요구사항에 집중한 코드 구현 가능 새로운 기능을 추가하기 전 ..
2018.08.22 -
[개발 상식] RESTful API
[개발 상식] RESTful API 해당 시리즈는 Interview_Question_for_Beginner를 기반으로 추가 학습을 진행해 작성하였습니다. 목차 [개발 상식] RESTful API RESTful API? REST 구성요소 중심규칙 6가지 원칙(특징) RESTful API RESTful하게 API를 디자인 하는 법 장점 단점 Reference RESTful API? REST의 기본원칙을 성실히 지킨 API REST API 설계의 중심에 자원이 있고 HTTP Method를 통해 자원을 처리 하도록 설계하는 것 REpresentational State Transfer의 약자 Resource Oriented Architecture이다. 위키백과 월드 와이드 웹(a.k.a WWW)과 같은 분산 하이..
2018.08.22 -
[백준(baekjoon) 1373] 2진수 8진수
문제 백준 1373 입력되는 2진수를 8진수로 바꾸어라. 2진수의 길이는 1,000,000을 넘지 않는다. 해결 3개씩 묶어 8진수로 바꾸어주면 된다. (2진수 -> 10진수로 바꾸는 방법과 동일) 뒤에서 부터 묶기 때문에 앞에 부족한 부분을 어떻게 하느냐가 문제 나는 input을 char []으로 받아 index가 범위를 벗어날 때 아무처리도 하지 않았다. 주의 쉬운 문제지만 많이 틀렸다. 그 이유는 범위 문제 처음 문제를 잘못 이해해서 1,000,000이하의 수가 들어온다는 줄 알았다. 하지만 1,000,000자리이므로…. 숫자로 받으면 안된다. 범위를 훨씬 넘기기 때문 output역시 long을 넘어간다. 따라서 문자열로 처리해야한다. 시간 문제 위의 문제를 파악하고 간단히 String으로 처리했지..
2018.08.21