본문 바로가기

전체 글141

[JAVA] 프로그래머스 K번째수 문제: K번째수 https://programmers.co.kr/learn/courses/30/lessons/42748 [k번째수] 문제 재정의: 원본 배열 array (input) commands. [i=나눌 배열 첫번째 인덱스 번호, j=마지막 인덱스 번호, k=return할 인덱스 번호 ] (input) commands의 인덱스2의 값을 배열에 담아 return 이클립스에서 할 때 commands 몇개 넣을지 숫자도 input 받기 (편의상) commands의 길이는 1 이상 50 이하입니다. commands의 각 원소는 길이가 3입니다. 생각한 것: 정렬함수 만들어서 정렬함수 매개변수에 commands 에서 정렬, 그리고 답 return sort(배열, fromIndex, toIndex) 사용 So.. 2019. 6. 24.
[JAVA] 알고리즘을 최적화 해보자 1. Scanner 입력 대신 BufferedReader를 사용하자 왜? 효율면에서 훨씬 굳 (입력값이 많을수록) BufferedReader는 데이터를 사용자가 요청할 때마다 '매번' 읽어오기 (X) 일정량 사이즈로 '한 번에' 읽어온 후 버퍼에 보관. 사용자가 요구할 때 버퍼에서 읽어오게 한다. (O) -> 속도 향상, 시간 부하 줄일 수 있다 (Scanner의 버퍼 사이즈는 1024 chars VS BufferedReader의 버퍼 사이즈는 8192 chars) 얼마나 빠른지 밑에 사진 참고. (출처: 알고스팟) 깨알 지식: BufferedReader 나오고 난 뒤에 Scanner 나옴 각각 특징: Scanner: space를 모두 경계로 인식. 가공하기 쉽다. 효율 낮음 BufferedReader:.. 2019. 6. 24.
[JAVA] 백준 2869번 [백준 2869] 달팽이 문제: https://www.acmicpc.net/problem/2869 문제 이해: (1 ≤ B < A ≤ V ≤ 1,000,000,000) 낮에 a 올라갈 수 있고, 밤에는 b 미끄러진다. 그러나 v미터인 정상에 도착하면 밤이어도 미끄러지지 않는다. 하고자 하는 것: 그렇다면 하루에 올라가는 미터는 a-b, 그러나 낮에 정상에 올라가면 밤에 떨어지지 않는 부분을 넣어야 됨. 코드: (시간 초과 남 ) package till; import java.util.Scanner; public class Main { public static void main (String[] args) { Scanner scan = new Scanner(System.in); int day= scan.n.. 2019. 6. 4.
[JAVA] 백준 11399번 [백준 11399] ATM 문제: https://www.acmicpc.net/problem/11399 전형적인 그리디 문제 문제 이해: 각자 번호가 있고, 각 번호마다 할애하는 시간이 주어진다. 고객을 어떻게 세우냐에 따라 시간의 합을 조절할 수 있는데, 최소의 시간의 합을 구하기. 하고자 하는 것: 그 순간순간에 제일 시간이 적게 걸리는 사람들을 채택. : input된 시간들 배열에 저장. 배열 Array.sort(). 걸리는 시간들을 다 더한 result 도출 : += 이용 package till; import java.util.Arrays; import java.util.Scanner; public class Main { public static void main (String[] args) { S.. 2019. 6. 4.
[JAVA] 백준 2293번 https://www.acmicpc.net/problem/2293 동전 1 -다이나믹 프로그래밍 [백준 2293번] 동전 1 예제를 풀어 봄 문제 파악 해서 정리 해 봄: n개의 숫자 조합을 이용해 합 k를 맞추는 경우의 수를 찾는 문제. (순서 상관없고, n개 다 이용 안 해도 됨, 동전 중복 사용 가능) 풀이 생각해 봄: dp 1원부터 생각->1,2원 두가지 동전 종류가 있을 때 생각 -> 1,2,3원 세 가지 동전 종류가 있을 때 생각 ~ 이 과정에서 규칙을 발견하고 점화식 세워보기 코드 짜기. 출처 https://songsunbi.tistory.com/67 하나 더 고려해야 할 점이 있습니다. 3원으로 경우의 수를 계산하는데 1원과 2원의 경우를 계산할 필요가 있을까요? 어차피 제가 가지고 있는 .. 2019. 6. 2.
[JAVA] 백준 8979번 https://www.acmicpc.net/problem/8979 올림픽 -정렬 [백준 8979번] 올림픽 문제 이해: 올림픽 메달 개수로 순위 매기기 답 봄 . 2차원 배열로 한 사람 https://yeolco.tistory.com/8 내가 하려고 한 것: 2차원 배열에 메달 정보 저장. 정렬 클래스 따로 작성. 메인에서 금메달을 내림차순 정렬&은메달 내림차순 정렬&동메달 내림차순 정렬을 함. 금메달 내림차순 정렬한 것대로 순위 매김. but 금메달 동점 국가가 있다면 은메달 내림차순 정렬된 것으로 순위 매김 but 은메달 동점 국가가 있다면 동메달 내림차순 정렬된 것으로 순위 매김 해서 답을 내려고 했음. 근데, 'but' 부분이 생각대로 안되서 포기하고 답을 봄 안 된 부분 ex) 금메달 따로 정렬.. 2019. 6. 2.
[생활코딩 React 강의 5] 이벤트 설치해보기 응용 생활 코딩 리액트 강의 나만의 태그에 이벤트를 만들어서 태그/컴포넌트를 생산해보기 (리액트 스터디 4일 차의(리액트 스터디 4일 차의 응용) 하려는 것1: App.js의 subject 컴포넌트에 onChagePage라는 이벤트를 내가 만듦. 이 이벤트에 alert창 뜨게 하는 함수를 설치 그 이벤트가 발생되었을 때, props로 전달된 onChangePage 함수를 호출하면 됨. 여기까지 해서, 리로딩 방지하고 alert창 잘 뜨면 내가 만든 이벤트에 setState 이용해서 state 바꾸는 함수로 수정 전: App.js- header 태그 안의 코드는 원래 Subject.js에 있던 코드. 근데 쉽게 이해하기 위해 Subject의 코드를 바깥으로(app.js) 옮겨놨었을 뿐 후: header 태그 주.. 2019. 5. 19.
[생활코딩 React 강의 4] 이벤트 설치해보기 생활 코딩 리액트 강의 https://www.youtube.com/playlist?list=PLuHgQVnccGMCRv6f8H9K5Xwsdyg4sFSdi 이벤트 props, state, event 3개가 상호작용하여 애플리케이션의 역동성을 만듦 이번 시간에 하고자 하는 역동적 이벤트: [web, html, css, javascipt 단어에 링크를 거는 이벤트를 설치할 것임. 링크를 클릭하면 그에 따라서 App.js의 App 컴포넌트의 state가 바뀌고, 바뀐 state가 Content 컴포넌트의 props값으로 전달되면서 동적으로 애플리케이션으로 바뀌게 구현하기] 1.state 먼저 세팅하기 welcome 페이지인지, read 페이지인지 구분하기 위해 state에 mode라는 값을 줄 것임, mode가.. 2019. 5. 18.
인적성_수리/추리 문제 정리 수리 계산 최소화해서 빨리 풀자 ex) 평균 점수 같다 - 계산할 때 굳이 /총 파티수 안 해도 됨 어렵다면, 정확한 답부터 찾으려 x 그러다 시간 다 감. 경우의 수를 만들어 대입해보자 최소 일수에 대한 개념 pg.116 식으로 정확한 수 찾아낼 필요없이 문제에서 주어진 조건인 자연수임을 이용 2월을 29일로 둔 해를 윤년 4년마다 2월을 29일 (원래 28일) 거리 = 시간 * 속력 거리, 시간, 속력의 단위가 같은지 먼저 확인하고, 단위를 통일하는 것이 가장 우선시되어야 함. x를 무엇으로 두느냐가 중요 복잡/헷갈리면 표로 정리해서 풀자 조건부 확률 pg. 125 1인지 0.1인지 헷갈리지 말기. 숫자 계산 덜렁거리지 말기 ~% , 1/2 등 할인 등을 '반복'한다고 할 때 결과값이 나오는, 곱해져.. 2019. 5. 12.
자료구조 총정리 출처: 윤성우의 열혈 자료구조 Introduction to Data Structures Using C 자료구조는 근본적으로 무엇인가를 '표현'하는 도구. 표현을 위해서 저장과 삭제라는 기능이 제공되는 것으로 이해하는 것이 옳다. 순차 탐색 = 맨 앞에서부터 순서대로 탐색을 진행하는 알고리즘 이진 탐색 = 탐색의 대상을 반복해서 반씩 떨구어 내는 알고리즘 (이진 탐색 조건: 정렬되어 있어야 함) 재귀 = 함수 내에서 자기 자신을 다시 호출하는 함수를 의미 (일련의 과정을 반복한다고? 재귀구나! 그렇다면 그 일련의 과정만 파악하면 되겠네) 시간 복잡도 최악의 경우를 시간 복잡도의 기준으로 삼는다. (평균적인 경우는 각 알고리즘마다 가정을 설정하기 어렵고 객관적인 판단이 어렵기 때문) O(1) < O(logn.. 2019. 5. 12.
[Computational Thinking Skills] 프로그래밍과 논리/수학 SW Expert Academy - computational thinking skills 1. 프로그래밍과 논리/수학 문제 1: 사실-카드는 한 면은 알파벳, 다른 한 면은 숫자 주장-D 뒷면에는 숫자 3이 있다 문제-카드 [D, F, 3, 7]이 있을 때 어떤 카드를 뒤집어서 주장을 증명할 것인가? 문제 1 답: D, 7 F뒤에 3 이 있던 없던 주장과 상관 없음 3뒤에 꼭 d가 있어야 한다고 생각하기에 3을 뒤집어봐야한다고 생각하지만, 3뒤에 A가 있더라도 주장이 모순되지 않음 7을 뒤집어서 D가 있으면 주장이 깨지는 것이 증명되는 것이기에 7을 뒤집어봐야 함 문제 2: 규칙-20세 이하 맥주 마실 수 없음 문제-나이 혹은 마시고 있는 것을 표시한 다음 4명 중 확인이 필요한 사람은 몇 명이고 누구인.. 2019. 4. 27.
[생활코딩 React 강의 3] State란? state 사용해보기 생활 코딩 리액트 강의 https://www.youtube.com/playlist?list=PLuHgQVnccGMCRv6f8H9K5Xwsdyg4sFSdi State - props값에 따라 내부 구현에 필요한 데이터들 props-컴포넌트를 사용하는 입장에서 중요한 것 props가 하는 일과 state가 하는 일을 철저히 분리하여 최대의 효율/최고의 웹을 만들고자 하는 게 react의 특징 중 하나. 컴포넌트의 값을 초기화시키는 법 render() {} 보다 먼저 실행되어야 하고, 그와 동시에 컴포넌트의 값들을 초기화시켜주려면! => construtor안에 코드를 짜주면 됨. constructor가 있는 컴포넌트 형식은 아래와 같음 class App extends Component{ constructor(p.. 2019. 4. 26.
[생활코딩 React 강의2] 컴포넌트 만들기, Props, 컴포넌트 파일로 쪼개기 생활코딩 리액트 강의 -> https://www.youtube.com/playlist?list=PLuHgQVnccGMCRv6f8H9K5Xwsdyg4sFSdi 리액트는 왜 필요할까 예를 들어 이러한 코드가 있다고 생각해보자. index.html , sidebar.html ~ 사이드바 만드는 겁나 긴 코드가 있다고 가정 , top.html ~ top 유아이 만드는 겁나 긴 코드가 있다고 가정 index.html 파일을 보면 top /top 부분이나, sidebar /sidebar 와 같은 태그를 '내가' 적어주면 웹 브라우저에게 전달될 때는 저절로 sidebar.html과 top.html로(겁나 긴 코드) 바뀔 수 있다면? 겁나 편리. -> 이하 장점들 정리 가독성 (=겁나 길고 복잡한 코드를 내가 정의한 .. 2019. 4. 26.
[생활코딩 React 강의 1] 컴포넌트란? && React 기본 앱 뜯어보기 && 배포해보기 생활코딩 리액트 강의(이고잉님 thㅏ랑해요) -> https://www.youtube.com/playlist?list=PLuHgQVnccGMCRv6f8H9K5Xwsdyg4sFSdi React =페이스북이 만든 자바스크립트 ui 라이브러리 =사용자 정의 태그를 만들어주는 기술 중 하나 컴포넌트 ='사용자 정의 태그'라고 생각 index.html sidebar.html ~ 사이드바 만드는 겁나 긴 코드 top.html ~ top 유아이 만드는 겁나 긴 코드 index.html 파일을 보면 부분이나, 와 같은 태그를 '내가' 적어주면 웹 브라우저에게 전달될 때는 저절로 sidebar.html과 top.html로(겁나 긴 코드) 바뀔 수 있다면? 겁나 편리. 이하 장점 들 정리 -가독성 정리 (=겁나 길고 복잡.. 2019. 4. 24.
티스토리 코드 하이라이트 적용하기.. highlight.js 적용 출처: https://blog.naver.com/nhj7/221402779303 소스 구문 강조 highlight.js(하이라이트) 적용 방법(+티스토리) 개발을 하시는 분들이라면 항상 어떤 에디터든 통합 IDE를 사용하고 계실텐데요. 그 개발 프로그램들의 ... blog.naver.com 다른 분들 블로그 따라 할 땐 다 안됐는데 이거 따라 해서 성공.., ,, , , , ㅏ, , , cdn으로 header에 추가하는 게 에러 안 나는 방법인 듯 +추가) 여러 theme들의 정확한 경로 url을 알고 싶다면 아래 cdn 홈페이지를 들어가 보자 https://cdnjs.com/libraries/highlight.js/9.13.1 highlight.js - cdnjs.com - The best FOSS C.. 2019. 4. 2.
[JAVA] 문자열 건드릴 때 String이 아닌 StringBuffer를 써야 하는 이유 https://eyears.tistory.com/entry/StringBuffer%EB%A5%BC-%EC%82%AC%EC%9A%A9%ED%95%98%EB%8A%94-%EC%9D%B4%EC%9C%A0 2019. 4. 1.
[JAVA] Stack 스택 자바 스택 기본 이론 출처: 스택 특징 java.util 패키지에 있다 벡터를 상속받고 있다 LIFO(Last-In-First-Out) 총 5가지 메소드 = 비어있는지 확인, 안에 특정요소가 잇는지 살펴보기, 요소를 넣고 빼고, 뭐가 있는지 살짝 보기 boolean empty() int search(Object o) int size(Object o) E push(E item) E pop() E peek() 5가지 메소드를 이용한 예제 코드 import java.util.*; public class Main { public static void main(String[] args){ Stack s = new Stack(); int[] num ={17, 5, 123, 252, 12}; System.out.pr.. 2019. 3. 31.
[JAVA] HashMap 해쉬 맵 HashMap 출처: 기본 지식 Hashing : 해시함수를 이용해서 데이터를 해시테이블에 저장하고 검색하는 기법을 말한다. HashMap vs TreeMap HashMap: 저장은 느리지만 많은 양의 데이터를 검색하는데 뛰어난 성능을 보인다. TreeMap: HashMap에 비해 저장이 빠르지만 데이터를 가져올 때 약간 느리다. Map 인터페이스 : 키(key)와 값(value)을 하나의 세트로 묶어서 저장하는 컬렉션 클래스를 구현하는 데 사용 키: 중복 가능 값: 중복 불가 아이디는 중복 불가능하나 1234를 비밀번호로 설정하는 것은 가능한 것처럼 또한, Key와 Value값에 null값을 허용하기 때문에 데이터가 빠져있어도 문제되지 않는다. void clear() : Map의 모든 객체를 삭제 bo.. 2019. 3. 31.