2019-12-16

2019-12-12 피드백 || RDB 와 NO-sql

2019-12-12 피드백 || RDB 와 NO-sql RDB (Relational Database) ACID rules 원자성(Atomicity) - 중간 단계까지 실행되고 실패하는 일이 없도록 하는 것 일관성(Consistency) - 트랜잭션 실행을 성공적으로 완료하면 언제나 일관성 있는 데이터베이스 상태로 유지하는 것 고립성(Isolation) - 다른 트랜잭션의 작업이 끼어들지 못하도록 보장하는 것 지속성(Durability) - 성공적으로 수행된 트랜잭션은 영원히 반영되는 것 NO-sql...

2019-12-14

2019-12-12 피드백 || API 요청조절 - 스로틀링(Throttling), 디바운스(Debounce)

2019-12-12 피드백 || API 요청조절 - 스로틀링(Throttling), 디바운스(Debounce) 스로틀 (Throttle) 정해진 시간보다 많은 요청을 제한적 수용 디바운스 (Debounce) 연속적인 요청 발생 후 일정 시간 후 수용 버킷 알고리즘 FIFO 큐 형태로 패킷을 버킷에 담듯 쌓아서 처리 알고리즘에 따라 패킷제어 토큰 버킷 (Token bucket) 정해진 양의 토큰을 순환적으로 전달될 요청에 담아 토큰을 포함한 요청만 처리하는 패킷제어 소요시간 계산식 time...

2019-11-07

2019-10-18

12시간제를 24시간제로 시간증가하여 변환

12시간제를 24시간제로 시간증가하여 변환 목표 자연수 N을 오름차순과 내림차순으로 각각 정렬하여 두 값을 합산한 결과를 반환하시요 조건 time의 값은 오전과 오후가 각각 “AM”, “PM” 으로 표시하며 12시간제로 “시:분:초” 의 형태를 가짐 시분초는 한자리 수라도 두자리로 표시 N <= 200,000 예시 time n result AM 12:01:00 1 00:01:01 PM 12:01:00 2 12:01:02 PM 09:01:40 50 21:02:10 AM 11:01:00 3700 00:02:40 코드 import java.util.*; import java.util.regex.Matcher; import java.util.regex.Pattern; public...

숫자를 정렬,역정렬하여 합산

숫자를 정렬,역정렬하여 합산 목표 자연수 N을 오름차순과 내림차순으로 각각 정렬하여 두 값을 합산한 결과를 반환하시요 조건 N >= 1 || N <= 1,000,000,000 예시 N process result 2613 1236 + 6321 7557 33285 23358 + 85332 108690 코드 import java.util.*; public class Solution { public int solution(int N) { int answer = -1; char[] splitNum = String.valueOf(N).toCharArray(); Arrays.sort(splitNum); ...

쌍이 아닌 배열값 검사

쌍이 아닌 배열값 검사 목표 cards 배열에서 쌍이 아닌 개체값 을 반환하시요. 조건 cards.length = N * 2 - 1 N >= 1,000,000 cards 개체값 >= 100,000,000 예시 cards answer [1,3,2,2,5,5,1] 3 [7,2,3,9,1,2,5,3,9,7,1] 5 코드 import java.util.*; import java.util.Arrays; class Solution { public int solution(int[] cards) throws NoSuchElementException{ // cards.length = 짝수 // cards...

정보를 저장하는 구조, Data Structure

정보를 저장하는 구조, Data Structure 자료구조 (Data Structure) 자료 구조란, 기본 자료형 (Primitive Data Structure) 생략 비기본 자료형, 사용자 정의 자료형 (Non-Primitive Data Structure) 선형 자료구조 (Linear Data Structure) Arrays Linked List Stack Queue 비선형 자료구조 (Non-Linear Data Structure) Tree Graphs ...

2019-07-17

시간 문자열 조정하기

시간 문자열 조정하기 목표 “PM 12:01:00” 형태의 문자열 time 과 증가될 초인 sec를 합쳐 24시간 표기법으로 전환한다 “PM 11:01:00”, 10 => “23:01:10” “AM 05:01:00”, 100 => “05:02:40” 조건 sec 의 범위는 0 ~ 10,000,000 24시에 도달한 경우, 날짜는 관계없이 0시부터 코드 import java.util.regex.Matcher; import java.util.regex.Pattern; class Solution { public String solution(String time, int sec) { Matcher matcher = Pattern.compile("(\\w+)...

2019-04-17

곱연산 계산

곱연산이 헷갈려서 만들었다. calc([50, 30, 20]); function calc(persents){ let value = 1; let calcPersent = 1; for(persent of persents){ calcPersent *= (1-(persent/100)); } value -= calcPersent; return value*100 + " %"; } spacebar로 값을 구분하며 숫자만 입력 계산 const textValue = document.getElementById("value"); const btnCalc = document.getElementById("calc"); function calc(persents){ let value = 1; ...

2019-03-27

프로그래머스 강좌, 자료구조와 알고리즘 - 3

자료구조와 알고리즘 - 3 link 14강. 큐(Queues) 큐는 Stack과 달리 선입선출(FIFO; First-In First-Out) 의 순서로 제어됩니다. 리스트 속에 데이터들의 시작과 끝의 포인터가 존재합니다. 입력(enqueue)시, 리스트의 rear pointer에 추가되며 출력(dequeue)시, 리스트의 front pointer 부분을 꺼내게 됩니다. 실습 목표: 배열과 양방향 연결 리스트 구현시, 연산 복잡도 확인 배열 - 출력시, 모든 개체의 위치를 옮기는 과정에서 O(n) 가 소요 양뱡향 연결 리스트 -...

2019-03-26

개발 환경의 자동화, CI

Continuous Integration CI(Continuous Integration), 지속적 통합이란 소스관리, 빌드, 배포 등의 구조를 자동화 함으로써 소프트웨어 개발에 위험을 줄이는 방법으로 사용되고 있습니다. CI 구성의 핵심 4요소 CI Server 빌드 스크립트를 작성하고 자동화 프로세스를 구성하여 빌드. 테스트를 포함한 자동화 절차를 통해 검증하며 오류를 감지한다. 예) Jenkins, Travis 등 Source Control, Version Control 소스 코드 관리 및 팀 단위 구성의 프로젝트 진행시...

프로그래머스 알고리즘, 가장 큰 수

목표 (문제) 주어진 배열의 수를 조합하여 가장 큰 수를 만든다. 조건 numbers의 길이는 1 이상 100,000 이하입니다. numbers의 원소는 0 이상 1,000 이하입니다. 정답이 너무 클 수 있으니 문자열로 바꾸어 return 합니다. 잡설 생각한 과정에서 문제가 생겨 더이상 진행하지 못하고 다른 풀이를 보았는데 comparator를 사용한걸 알게되었다. 해당 comparator에 대해 기록해봐야겠다. 코드 public static String solution(int[] numbers) { String answer =""; List<String> list = new ArrayList<>(); int length = numbers.length; ...

프로그래머스 알고리즘, 모의고사

목표 (문제) 1~5까지를 일정한 패턴으로 반복할때, 그 값들을 주어진 answers와 비교하여 일치하는 값의 갯수들을 배열로 반환하시요. 조건 answers 의 길이는 최대 10,000 입니다. 배열값은 반드시 1, 2, 3, 4, 5 중 하나입니다. 일치하는 개수가 동일할 경우, Index를 기준으로 오름차순 정렬해주세요. 일치하는 값이 모두 없을때, 두 반환합니다. 코드 public class Main { public static void main(String[] args) { // int[] answers = { 1, 2, 3, 4, 5 }; // int[] answers = { 1,3,2,4,2 }; int[] answers = { 3, 1,...

프로그래머스 알고리즘, 소수찾기2

목표 (문제) 주어진 numbers의 각각 숫자들을 조합하여 만들 수 있는 모든 소수의 수를 반환하세요. 조건 numbers는 길이가 1 ~ 7 인 문자열입니다. numbers는 0~9 까지 숫자값만으로 이루어져 있습니다. 013은 0, 1, 3 숫자로 조합하면 됩니다. 11과 011은 같은 숫자로 취급합니다. 코드 동작 오류 발생 Set<Integer> lhs = new LinkedHashSet<Integer>(); public int solution(String numbers) { makeCombination("", numbers); return getPrimeCount(new LinkedList<Integer>(lhs)); } public...