본문 바로가기

TOTAL146

[JAVA] 백준 1260번 [백준 1260번 DFS와 BFS] https://www.acmicpc.net/problem/1260 문제 재정의: https://mygumi.tistory.com/102 생각한 것: 일단 인접 행렬에 input값들을 저장해 트리 구조를 저장 (양방향임을 주의) DFS는 따라 따라 가면됨. 끊기면 오른쪽으로 이동 BFS는 한 번 내려가고 바로 오른쪽, 맨 오른쪽까지 간다음 다시 왼쪽으로 돌아와 탐색 코드 //이클립스 코드 package till; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.uti.. 2019. 7. 8.
[생활코딩 React 강의 4] CRUD 중 Create 구현하기 생활 코딩 리액트 강의 create로 바뀔 것 그에 따라 Content, 읽기에서 사용되는 컴포넌트가, 글을 추가할 때 사용되는 컴포넌트로 바뀔 것. 이 컴포넌트에는 form이 들어가 있을 것. form에 정보를 입력, submit 버튼 클릭 시 App 컴포넌트에 contents 목록에 새로운 컴포넌트 정보가 id,제목,본문이 객체로 담겨 contents에 추가될 것임 새로 추가한 컴포넌트를 클릭하면 mode가 다시 create->read로 바뀌고, selected_content_id가 해당 id로 바뀌고, 본문에 ( TOC에) 해당 내용이보여질 것임 1-1. TOC와 CONTENT 사이에 CREATE,UPDATE,DELETE mode로 진입할 수 있는 버튼 만들기 create,update,delet에 .. 2019. 7. 1.
[JAVA] 프로그래머스 기능개발 문제: https://programmers.co.kr/learn/courses/30/lessons/42586 [기능 개발] 문제 재정의: 작업의 진도가 적힌 정수 배열 progresses. input 각 작업이 하루에 % 할 수 있는지 개발 속도가 적힌 speeds 배열. input 뒷 기능이 먼저 끝난다해도 앞 기능이 끝날 때 같이 배포됨. 생각한 것: 1.몇일 후에 배포 가능한지 계산해서 순서대로 새로운 저장공간 a에 저장. 2.a에 저장되어 있는 값들 & 큐를 이용해 계산 - a[0]을 일단 pivot으로 - 그 다음 값이 a[0]보다 작거나 같을때까지 count++ (count는 초기값이 1) - 다음 값이 a[0]보다 크다면 큐(temp)에 count를 집어넣어줌. - 그리고 a[0]이었던 pi.. 2019. 6. 24.
[JAVA] 프로그래머스 쇠막대기 문제 https://programmers.co.kr/learn/courses/30/lessons/42585 [쇠막대기] 문제 재정의: 인접한 ()는 레이저, 여는 괄호( 와 닫는 괄호)로 쇠막대기 input 받음 긴 쇠막대기 위에만 올릴 수 있음 각 쇠막대기 자르는 레이저 적어도 하나 존재 레이저는 쇠막대기의 양 끝점 절대로 겹치지 x 쇠막대기는 다른 막대기들의 끝점과 겹치지 않게 올려야 함 생각한 것: input받은 괄호를 분석해 구분하여 데이터 저장해놓는 것이 우선 스택으로 구현. (스택으로 후위 계산식 계산하는 코드 생각이 남. 이걸 참고 해야겠다고 생각. ) 스택에 일단 차례대로 집어 넣는다. 근데 이때 )괄호를 만나면 pop 해주고, 인접한 괄호라면 레이저 정보 업데이트, 그리고 count +2.. 2019. 6. 24.
[JAVA] 프로그래머스 H-Index 문제: H-Index https://programmers.co.kr/learn/courses/30/lessons/42747 [H-Index] 문제 재정의: citations 배열(input)의 length->n citations 배열 중 h 이상 인용된 논문이 h개 이상이고, 나머지 논문이 h번 이하 인용되었다면, h return 생각한 것: 일단 citations 배열 정렬 배열.length의 /2를 일단 int h로 잡고 검사. h 이상 인용된 논문이 h편 이하이면 h--, 또 검사. h 이상 인용된 논문이 h편 이상이면 h++, 또 검사. 반복. ->h이상 인용된 논문의 갯수를 count로 잡음 2번 단게를 반복하다가 h이상 인용된 논문이 h이면, 나머지 논문이 h번 이하 인용되었다면. 맞다면 re.. 2019. 6. 24.
[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.