전체 글

개발, 일상 등 나에 대한 모든 것을 기록합니다.
알고리즘

[Python] 타겟 넘버 - level 2

https://programmers.co.kr/learn/courses/30/lessons/43165 코딩테스트 연습 - 타겟 넘버 n개의 음이 아닌 정수가 있습니다. 이 수를 적절히 더하거나 빼서 타겟 넘버를 만들려고 합니다. 예를 들어 [1, 1, 1, 1, 1]로 숫자 3을 만들려면 다음 다섯 방법을 쓸 수 있습니다. -1+1+1+1+1 = 3 +1-1+1+1+ programmers.co.kr 깊이우선탐색(DFS), 너비우선탐색(BFS)을 이용하여 주로 푼다고 한다. 프로그래머스 문제 분류 또한 위의 두가지로 분류되어있다. 나는 BFS를 이용하여 풀었다. DFS로 푼다면 재귀함수처럼 타고타고 들어가는 방식으로 풀게 될것이다. 코드는 매우 간단하다. numbers에 담겨있는 숫자들을 for문으로 하나..

알고리즘

[Python] 카펫 - level 2

https://programmers.co.kr/learn/courses/30/lessons/42842?language=python3 코딩테스트 연습 - 카펫 Leo는 카펫을 사러 갔다가 아래 그림과 같이 중앙에는 노란색으로 칠해져 있고 테두리 1줄은 갈색으로 칠해져 있는 격자 모양 카펫을 봤습니다. Leo는 집으로 돌아와서 아까 본 카펫의 노란색과 programmers.co.kr 넓이는 가로x세로 라서 yellow에 제곱근을 해주어 for문을 실행시켰다. 넓이=면적이기때문에 아래와 같이 가능하다. 또는 근의 공식을 써서 풀 수 있다는데 대단한 사람들이 많다. 난 이렇게 해야지... def solution(brown, yellow): # 가로x세로 = 넓이(=면적)(=brown+yellow) answer ..

프로그래밍/객체지향 설계

[오브젝트] 2장. 객체지향 프로그래밍

1. 영화 예매 시스템 요구사항 앞으로의 설명을 위해 '영화'와 '상영'이라는 용어를 구분할 필요가 있다. '영화'는 영화에 대한 기본 정보를 의미한다. 제목, 상영시간, 가격정보 등을 가지고 있다. '상영'은 실제로 관객들이 영화를 관람하는 사건을 표현한다. 상영일자, 시간, 순번 등을 말한다. 영화는 하루 중 다양한 시간대에 걸쳐 한 번 이상 상영될 수 있다. 두 용어의 차이가 중요한 이유는 사용자가 실제로 예매하는 대상은 영화가 아니라 상영이다! 사람들은 영화를 예매한다고 표현하지만 실제로는 특정 시간에 상영되는 영화를 관람할 수 있는 권리를 구매하기 위해 돈을 지불한다. 특정한 두가지 조건을 만족하는 예매자는 요금을 할인받을 수 있다. 할인 조건 (discount condition) 할인 정책 (..

알고리즘

[Javascript] 시저 암호 - level 1

https://programmers.co.kr/learn/courses/30/lessons/12926 코딩테스트 연습 - 시저 암호 어떤 문장의 각 알파벳을 일정한 거리만큼 밀어서 다른 알파벳으로 바꾸는 암호화 방식을 시저 암호라고 합니다. 예를 들어 "AB"는 1만큼 밀면 "BC"가 되고, 3만큼 밀면 "DE"가 됩니다. "z"는 1만큼 밀 programmers.co.kr function solution(s, n) { // 문자열같이 배열이 아닌것들을 map에서 쓸때 .call()을 씀 const answer = Array.prototype.map.call(s, c => { let a = ''; // c가 알파벳일 때 if ((c >= 'a' && c = 'A' && c 'z') { a = 'a'.ch..

알고리즘

[Javascript] 폰켓몬 - level 1

https://programmers.co.kr/learn/courses/30/lessons/1845 코딩테스트 연습 - 폰켓몬 당신은 폰켓몬을 잡기 위한 오랜 여행 끝에, 홍 박사님의 연구실에 도착했습니다. 홍 박사님은 당신에게 자신의 연구실에 있는 총 N 마리의 폰켓몬 중에서 N/2마리를 가져가도 좋다고 했습니다. programmers.co.kr function solution(nums) { // 폰켓몬 수의 반을 골라야하기 때문에 종류가 다 다를 때 최대값은 max까지 가능함 const max = nums.length / 2; // 중복되는걸 제거하고 폰켓몬이 몇 종류가 있는지 알기 위해 set에 담아줌 const setNum = new Set(nums); // set이 전체 폰켓몬의 1/2가 안되면..

프로그래밍/객체지향 설계

[오브젝트] 1장. 객체, 설계

객체지향 설계 관련 글들은 조영호 저자의 오브젝트 라는 책의 내용을 정리한 포스팅들이며, 챕터별로 포스팅할 예정입니다. 1장에서는 절자지향에 가까운 코드를 객체지향적으로 최대한 리팩토링하는 과정을 보여줌으로써 객체지향적 설계가 무엇인가에 대해 살펴 볼 것입니다. 1. 티켓 판매 애플리케이션 구현하기 여러분은 소극장의 홍보도 겸할 겸 관람객들의 발길이 이어지도록 작은 이벤트를 기획하기로 했다. 이벤트의 내용은 간단하데 추첨을 통해 선정된 관람객에게 공연을 무료로 관람할 수 있는 초대장을 발송하는 것이다. 드디어 기다리던 공연 날이 밝았다. 소극장 앞은 초대장 당첨자들과 표를 구매하려는 관람객으로 장사진을 이루고 있었다. 이제 소극장의 문을 열어 오랜 시간 공연을 기다려온 관람객들을 맞이하자. 코드 작성 거..

자격증 공부

SQLD 요약 정리

CEIL -> 올림 FLOOR -> 내림 TRUNC, ROUND -> 소수점 m자리에서 연산(default : 0) MOD(A, B) -> 나머지값 구하기 LAG(expr [,offset] [,default]) -> 이전 행의 값을 리턴 ex) LAG(empno, 2) -> empno LEAD 함수 -> 다음 행의 값을 리턴 NVL(컬럼,NULL일경우 반환값) NVL2('컬럼','NULL이 아닐 경우 반환값','NULL일경우 반환값') ISNULL (A,B) : A가 널이면 B로 출력 NULLIF (A,B) : A,B 같으면 NULL, 아니면 1출력 COALESCE(A,B,C....) : 데이터 중 널이아닌 첫번째 값 반환 LEAF - 해당 데이터가 자손으로도 존재하면 0, 아니면 1 NTILE(n) -..

영어공부/문법 기초

5. 과거진행시제 (was/were ~ing)

과거진행시제는 과거(특정 시간)에 ~하고있었다 라는 느낌으로 생각하면 된다. I was playing golf at 10:00 yesterday 긍정문 you were watching TV 부정문 you weren't watching TV 의문문 were you watching TV? 부정의문문 weren't you watching TV? It was raining when we went out. * 행위가 일회성인 경우 (과거진행이 아님!) I opened the window because it was hot.

알고리즘

[JAVA] 같은 숫자는 싫어 - level 1

import java.util.*; public class Solution { public int[] solution(int []arr) { StringBuilder temp = new StringBuilder(); StringBuilder res = new StringBuilder(); for (int i : arr) { temp.append(String.valueOf(i)); } // 중복 제거 for (int i = 0; i < temp.length(); i++) { if ((i != temp.length() - 1) && (temp.charAt(i) != temp.charAt(i + 1))) { res.append(temp.charAt(i)); } else if (i == temp.length()..

영어공부/문법 기초

5. 과거시제 (Do동사), just 용법, used to 용법

과거시제 (Do동사) Regular Verb Do동사의 과거시제는 동사의 뒤에 ed를 붙여준다. I danced ~ I cleaned ~ Irregular Verb 불규칙동사라고도 말하며, get -> got과 같이 과거시제에서 -ed가 아닌 다른식으로 변형되는 동사들을 뜻한다. 불규칙 동사 또한 과거부정을 표현할때는 Regular Verb와 같이 [didn't +동사원형]로 사용한다. 아래에서 대표적인 예시를 소개하겠다. do -> did get -> got go -> went come -> came take -> took sit -> sat 공통사항 Regular Verb든 Irregular Verb든 과거시제 부정문은 동일하게 [didn't + 동사원형]로 사용한다. 부정문 didn't do did..

영어공부/문법 기초

4. 과거시제 (be동사 -ed)

VERB는 3가지가 있다. 동사원형 ~ing ~ed 이번 포스팅에서는 과거시제인 ~ed에 대해 다뤄보려고 한다 ~ed는 보통 과거형이라고 배우지만, 영어는 시간개념을 한국어와 다르게 좀 더 철저하게 나눈다. 과거라기보다는 한 걸음 물러난다 라는 개념으로 이해하는게 더 좋다. ~ed BE type DO type 긍정(O) am, are, is -> was, were dance, eat, run, fly, ··· 부정(X) + not do + not ~ 의문문(?) V + S ? Do ··· ? 시간에서의 ~ed : 특정 시간만큼 물러난다. ex) 1년전, 저번주 토요일 등등... 태도에서의 ~ed : 태도가 뒤로 물러난다. ex) 정중하고 예의바른 or 조심스러운 어조 현실에서의 ~ed : 상상속의 것들을..

Giwonnnnnnn
기록하는 곳