일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- Sort
- 해시맵
- 멘딕스
- Recursion
- 자료구조
- 프로그래머스
- 이분탐색
- 백트래킹
- SQL
- microflow
- algorithm
- MySQL
- 트리
- 알고리즘
- 자바
- 정렬
- 재귀
- domain model
- 스택
- 반효경교수님
- 집합
- 가중치없는그래프
- Mendix
- 완전탐색
- dfs
- 그래프
- 매개변수 탐색
- lcap
- Bruteforce
- git
- Today
- Total
목록프로그래머스 (25)
mondegreen
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/pv6fY/btsF3li4NlI/K1kWnzeTWbPYVJAnFG2L7k/img.png)
스택을 deque로 활용함으로써 자료구조를 양껏 활용한 풀이이다. 다만 값을 빼고 넣는 순서를 헷갈리기 쉽다. import java.util.*; class Solution { public int solution(String s) { char[] target = s.toCharArray(); // 기본 문자열 스택에 담아 놓기 Deque base = new ArrayDeque(); for(int i = 0; i
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/dFxdmc/btsF62oMtWQ/UpGXEadtKXkVjJaHVXQG21/img.png)
Vector를 상속받아 구현되어 있는 Stack 대신 Deque로 stack을 구현해서 문제를 풀었다. import java.util.*; class Solution { boolean solution(String s) { char [] str = s.toCharArray(); Deque stk = new ArrayDeque(); for(char i : str){ if(i == '(') stk.push(i); else{ if(!stk.isEmpty() && stk.peek()=='(') stk.pop(); else return false; } } return stk.isEmpty(); } }
[프로그래머스 문제 / MySQL 기준] 1. 3월에 태어난 여성 회원 목록 출력하기1) 날짜의 형식을 별도로 지정하고 싶을 때 DATE_FORMAT(컬럼명, "날짜 형식") 으로 지정한다.2) 컬럼의 값 중 특정 문자 포함여부를 확인하고 싶을 때 LIKE "%문자열%" 로 확인한다.3) 특정 컬럼을 출력하고자 하는데 NULL이 아닌 값을 출력할 때는 WHERE 컬럼명 IS NOT NULL를 사용한다. SELECT MEMBER_ID, MEMBER_NAME, GENDER, DATE_FORMAT(DATE_OF_BIRTH, "%Y-%m-%d") FROM MEMBER_PROFILEWHERE DATE_OF_BIRTH LIKE "%-03-%"AND GENDER = "W"AND TLNO IS NOT NULLORDER..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/eeYuna/btsF3WJKcpz/TXmRw8NPaYgikoXYPgoJM1/img.png)
문제 분석을 진행하면서 배열을 만들까 고민했었다. 논리값 배열을 만들고 지나간 여부를 true / false로 처리하려고 했는데 생각해보니 이 문제는 좌표가 아니라 선분(길, 양 끝의 좌표 세트)을 확인해야 하는 문제였다. 따라서 배열을 사용하지 않고 두 개의 좌표를 필드로 가지고 있는 클래스를 생성해서 그 클래스를 타입으로 하는 해시 셋으로 처리하고자 했다. 하지만 여기서 간과한 것은 내가 클래스의 필드와 생성자만 만들고 set에서 contains로 같다고 확인할 수 있도록 equals 매서드를 만들지 않았기 때문에 각각의 클래스가 new 생성자로 생성된다면 각기 다른 주소값을 가지게 되어 equals로 판별할 수가 없게된다. 그래서 생각한 것은 Set의 타입을 String으로 설정하는 것이다 Stri..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bjyZM5/btsF17reweb/B8tat1Sheq6a8Ydc2LQaCK/img.png)
문제를 분석하고 입력값과 연산 횟수를 고려해 의사코드를 작성하고 시간 복잡도를 고민한 다음 코드를 작성했다. 활용한 것은 TreeSet인데 이 Set은 선언할 때부터 오름차순으로 정렬해주고 first()와 pollFirst() 같은 메서드를 활용해 가장 작은 값을 확인하거나 꺼내주는 기능을 한다. 따라서 별도로 배열 정렬할 필요가 없다. 여기서 잠깐 놓친 것은 pollFirst() 매서드를 사용함으로써 set의 크기가 동적으로 변하는데 변수로 저장해두지 않고 반복문의 길이를 size()로 설정했던 것이다. 실수를 깨닫고 변수로 받아 정적으로 활용했다. import java.util.*; class Solution { public int[] solution(int[] numbers) { TreeSet se..