![](http://i1.daumcdn.net/thumb/C200x200/?fname=https://blog.kakaocdn.net/dn/cq9Lri/btq2dA6iEAK/unhP7dptfwskvZk0KvIFs1/img.png)
일단 문제의 핵심은 조이스틷의 조작 횟수의 최솟값을 구하는 것이다. 즉, 만들어야할 문제가 어느 방향으로 움직여야 하는 지 정해야한다. 문제에서 문자는 모두 대문자로 주어진다고 했으니, 아마 아스키코드 값을 이용하여 판단하면 될 것이다. 표에서 A ~ Z가 65 ~ 90이므로 78번인 N을 기준으로 N 뒤 문자들은 조이스틱을 아래로 조작하여 만들게 코드를 작성하면 풀 수 있다. ... 라고 매번 처음에는 생각한다. 그러나 여기서 반드시 생각하고 넘어가야 하는 아주 중요한 사항이 있다! A일때는 조이스틱을 조작하지 않아도 문자가 이미 완성되어 있는 상태이다. 즉, JAAAAAAAAAJ 라면 굳이 A들을 모두 거치고 가는 방법보다는 첫 문자를 입력 후 마지막 문자로 커서를 이동시켜 마지막 J를 입력하는 것이..
![](http://i1.daumcdn.net/thumb/C200x200/?fname=https://blog.kakaocdn.net/dn/ca0hYS/btq16h0WlzJ/YRp6EeMoek9y1rsTrz4PKk/img.png)
조건을 하나 정해놓고 근사치를 뽑을 때까지 반복하면 되는 전형적인 Greedy 문제이다. 체육복의 여벌이 있는 학생이 체육복을 도둑맞았을 때는 자신의 체육복을 써야 하므로, reserve 배열에서 빠져야 한다는 점을 제외하고는 크게 문제 될 게 없는 문제이다. 정석대로 풀면 이중 for문이 2번 들어가게 된다. 이, 삼중 for 문에 좀 많이 당해봤던터라...그 풀이가 좀 보기 싫어서 Set도 만들어보고, List도 만들어보고 했지만, 이 문제는 그냥 이게 정답이지 싶어서 포기했다...ㅎㅎ package com.choonham; class Solution { public int solution(int n, int[] lost, int[] reserve) { int answer = 0; int lostN ..
![](http://i1.daumcdn.net/thumb/C200x200/?fname=https://blog.kakaocdn.net/dn/dwcLbR/btq10SndNbt/fJKK4kl3vq4JMiu26QRhY1/img.png)
JDBC 3번째 시간이다. 이번에도 동일하게 문제를 하나 가져왔다. ◎Problem JDBC 활용_2 에서 풀었던 문제와 거의 동일한 형태의 문제를 가지고 왔다. 이미지 파일들을 활용한다는 점을 제외하곤 완전 동일한 문제라고 봐도 될 거 같다. 마찬가지로 엑셀 파일의 정보를 읽어와서 객체화한 뒤, DB에 저장하여 활용하여 구현해야한다. ◎best_sandwiches_list_chicago_price_address.xls 따로 자세한 데이터 흐름 설명은 필요하지 않을 거 같다. 바로 코드로 갑시다. ○MealInfo.java : 엑셀 파일에 있는 데이터를 String값으로 받아 각각 형변환을 실행하고 저장하여 가지고 있는 객체 package com.choonham.data; public class Meal..
![](http://i1.daumcdn.net/thumb/C200x200/?fname=https://blog.kakaocdn.net/dn/dulY7d/btq11zUwvEY/KnaIbESgCgT4uU36mOoFl1/img.png)
Greedy(탐욕) 알고리즘은 직전에 다뤘던 동적 계획법과 대조되는 개념으로, 큰 문제를 쪼갠 부분 문제를 전부 검토하여 정답을 도출하는 것이 아니라, 풀이를 진행하는 순간순간마다 최적이라고 생각하는 정답을 도출해내는 방법이다. 즉, 모든 경우의 연산을 전부 수행하여 "완전한 정답"을 찾기보다는 각 상황마다 최적이라고 생각하는 연산만 골라 수행하여 좀 더 빠르게 "근사치"를 찾는 기법이라고 할 수 있다. 예를 들어보면, 더보기 https://velog.io/@cyranocoding/%EB%8F%99%EC%A0%81%EA%B3%84%ED%9A%8D%EB%B2%95Dynamic-Programming%EA%B3%BC-%ED%83%90%EC%9A%95%EB%B2%95Greedy-Algorithm-3yjyoohi..
프로그래머스 연습 문제를 바로 들어가기 전에, 동적 계획법과 탐욕 알고리즘은 확실하게 짚고 넘어가야 할 거 같아서 따로 포스팅하기로 했다. 우선 동적 계획법 알고리즘부터 자세하게 다뤄보자. 1. Dynamic Programming? 동적 계획법이란 하나의 큰 문제를 쪼개어 부분적인 부분을 풀어 큰 문제를 해결할 수 있도록 고안된 알고리즘이다. 개념만 딱 들어보면 분할 정복과 다르지도 않은 것 같지만, 큰 차이점이 존재한다. 분할 정복 알고리즘은 큰 문제를 쪼개어 나온 부분 문제를 전부 해결하여 큰 문제에 대한 정답을 도출할 수 있었다면, 동적 계획법 알고리즘은 이미 도출한 부분 문제의 정답을 저장해놓았다가, 중복의 연산을 해야할 때 이를 스킵하고 저장한 값을 사용하여 좀 더 효율적인 연산이 가능하다. -..
1. SELECT의 기본 형식 -> SELECT [PREDICATE] table_name [AS 별칭] [그룹함수(Column_name) [AS별칭]] [WINDOW 함수 OVER (PARTITION BY Column_name1, ... ORDER BY Column_name3,..) [AS 별칭]] FROM table_name [WHERE 조건] [GROUP BY Column_name [ASC | DESC]] [HAVING 조건] -SELECT절 ▷PREDICATE : 검색할 튜플 수를 제한하는 명령어를 기술 ▶DISTINCT : 중복된 튜플이 있으면 그 중 첫번째 한개만 표시한다. - FROM: 검색할 데이터가 들어있는 테이블 이름을 기술함 - WHERE: 검색할 조건을 기술 2. 논리 연산자는 NOT..
![](http://i1.daumcdn.net/thumb/C200x200/?fname=https://blog.kakaocdn.net/dn/20MCB/btq1R8xlPPP/TcHI6zHqV4HVHs50WfQvv1/img.png)
딱 보자마자, "이건 뭐지..." 하고 한참을 생각한 문제이다. 각 격자의 개수는 기억해놓고 그 넓이를 기억을 못한다는 LEO.... 사실 복잡해보이지만, 진짜 단순하게 생각하면 결국 카펫의 넓이는 노란 타일 부분의 가로와 세로 부분에 각각 +2씩하여 넓이를 구하면 된다. 두 타일의 개수를 더하여 나온 타일의 총 개수 = 카펫의 넓이이므로, 노란 타일의 개수를 받아와 1부터 나누어가며 딱 나누어 떨어지면서 나눈 수와 몫을 곱했을 때 총 타일의 개수가 되는 순간, 도출한 가로와 세로 크기에 2씩을 더하여 추출하면 되는 문제이다. package com.choonham; class Solution { public int[] solution(int brown, int yellow) { int[] answer =..
1. DDL(Data Definition Language): 데이터 정의를 위한 질의어 1) CREATE: SCHEMA, DOMAIN, TABLE, VIEW, INDEX를 정의함 - CREATE SCHEMA: 스키마는 데이터베이스의 구조와 제약조건에 관한 전반적인 명세를 기술한 것으로, 데이터 객체, 속성, 관계 및 데이터 조작 시 데이터들이 갖는 제약 조건 등을 정의한다. ▷ CREATE SCHEMA 대학교 AUTHORIZATION choonham; ▶ 사용자 ID가 choonham인 스키마 '대학교' 정의 - CREATE DOMAIN: 도메인은 하나의 속성이 취할 수 있는 동일한 자료형의 원자 값들의 집합이다. ▷ CREATE DOMAIN GENDER CHAR(1) [DEFAULT '남'] [CONS..
오라클에서 기본적으로 제공되는 기본 데이터 타입은 다음과 같다. 1. 문자 자료형: 자료형 설명 CHAR(n) 고정길이 / max 2000byte VARCHAR2(n) 가변길이 / max 4000byte NCHAR(n) 고정길이 유니코드 문자 / max 2000byte NVARCHAR(n) 가변길이 유니코드 문자 / max 2000byte LONG 가변길이 문자형 (max 2Gbyte) CLOB 대용량 텍스트 데이터 타입(max 4Gbyte) NCLOB 대용량 텍스트 유니코드 데이터 타입(max 4Gbyte) 2. 숫자 자료형: 자료형 설명 NUMBER 가변숫자 / max 22byte FLOAT(P) NUMBER의 하위타입 / P (1~128 .디폴트 : 128) / 이진수 기준 / max 22byte ..
![](http://i1.daumcdn.net/thumb/C200x200/?fname=https://blog.kakaocdn.net/dn/soaJo/btq1WiE8AHU/6hsZryPRXhonGYDlr20MP0/img.png)
JDBC를 사용하여 JAVA와 Database를 연동하는 기초적인 예제를 지난 포스팅에서 다뤘으니, 이번에는 조금 난이도를 올려서 해당 개념을 그대로 활용하는 문제를 풀었다. 문제와 활용할 데이터는 다음과 같다. 1) 주어진 파일을 이용하여 데이터베이스에 저장한 후, 저장된 데이터를 HTML파일로 생성하여 테이블을 표현 2) 셀프, 비셀프 주유소의 개수를 각각 파악하여 콘솔창에 출력 ◎oil.xls: 계속 풀어왔던 유형에 DB를 살짝 가미한 정도의 문제이다. 엑셀 파일을 그대로 읽어와 객체로 저장한 뒤, 이를 DB에 삽입하여 HTML형식으로 출력하면 된다. (살짝 돌아가는 느낌이지만, 배운다는 마음으로 돌아가보자) ○OilInfo.java: Excel 파일에서 읽어들인 정보를 객체화하기 위한 클래스 pa..
- 이탈리안 레스토랑
- redux-thunk
- Async
- react-native
- redux
- 인천 구월동 이탈리안 맛집
- await
- 정보보안기사 #실기 #정리
- javascript
- AsyncStorage
- 파니노구스토
- Promise
- 맛집
- 인천 구월동 맛집
- react
- Total
- Today
- Yesterday