본문 바로가기
728x90
반응형

전체 글602

[백준/java] 9095번: 1, 2, 3 더하기 - DP 문제 정수 4를 1, 2, 3의 합으로 나타내는 방법은 총 7가지가 있다. 합을 나타낼 때는 수를 1개 이상 사용해야 한다. 1+1+1+1 1+1+2 1+2+1 2+1+1 2+2 1+3 3+1 정수 n이 주어졌을 때, n을 1, 2, 3의 합으로 나타내는 방법의 수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, 정수 n이 주어진다. n은 양수이며 11보다 작다. 출력 각 테스트 케이스마다, n을 1, 2, 3의 합으로 나타내는 방법의 수를 출력한다. 문제 풀이 도출과정 D[1] = 1 D[2] = 2 D[3] = 4 D[4] = 7 D[5] = 13 N ≥ 4 일 때, D[N] = D[N-1] + D[N-2] + D[N-.. 2021. 6. 11.
[백준/java] 9625번:BABBA - DP(Dynamic Programming) 문제 상근이는 길을 걷다가 신기한 기계를 발견했다. 기계는 매우 매우 큰 화면과 버튼 하나로 이루어져 있다. 기계를 발견했을 때, 화면에는 A만 표시되어져 있었다. 버튼을 누르니 글자가 B로 변했다. 한 번 더 누르니 BA로 바뀌고, 그 다음에는 BAB, 그리고 BABBA로 바뀌었다. 상근이는 화면의 모든 B는 BA로 바뀌고, A는 B로 바뀐다는 사실을 알게되었다. 버튼을 K번 눌렀을 때, 화면에 A와 B의 개수는 몇 개가 될까? 입력 첫째 줄에 K (1 ≤ K ≤ 45)가 주어진다. 출력 첫째 줄에 A의 개수와 B의 개수를 공백으로 구분해 출력한다. 문제풀이 도출과정 처음엔 진짜 있는 그대로 풀었다. "A"가 나오면 "B"로 바꿔주고, "B"가 나오면 "BA"로 바꿔줬다. package dynamicP.. 2021. 6. 10.
[Oracle] 오라클 순위 관련 함수(ROW_NUMBER, RANK, DENSE_RANK) 게시판의 기본적인 정보와 조회수에 따른 행의 번호를 확인하고 싶을 때, 다음과 같은 쿼리를 사용하였다. SELECT ROWNUM, ID, TITLE, WRITER_ID, REGDATE, HIT FROM NOTICE ORDER BY HIT ASC; 흠... 조회수 오름차순으로 데이터가 보여지기는 하는데, ROWNUM을 먼저 반영하고 그다음에 정렬을 한듯한 느낌이다. HIT 오름차순으로 정렬한 후 ROWNUM을 반영하는 방법이 없을까.. 물론 있다 SELECT ROW_NUMBER() OVER (ORDER BY HIT) , ID, TITLE, WRITER_ID, REGDATE, HIT FROM NOTICE; ROW_NUMBER()를 이용하면 원하는 결과를 얻을 수 있다. SELECT ROW_NUMBER(), .. 2021. 6. 10.
[Oracle] 오라클 시간 관련 기능 - 세션 설정, 타임 존 변경 등 (1) 현재 날짜 출력 포멧을 바꾸는 방법 : SESSION NLS_DATE_FORMAT 변경 전 : SELECT SYSDATE, CURRENT_DATE FROM DUAL; 변경하는 구문 : ALTER SESSION SET NLS_DATE_FORMAT = 'YYYY-MM-DD HH24:MI:SS'; 변경 후 : SELECT SYSDATE, CURRENT_DATE FROM DUAL; 다시 원복하기 : ALTER SESSION SET NLS_DATE_FORMAT = 'YY/MM/DD'; 원복 후 : (2) 현재 위치한 장소의 시간대 설정 변경 전 : SELECT SYSDATE, CURRENT_DATE FROM DUAL; 변경 구문 : ALTER SESSION SET TIME_ZONE = '-08:00'; -.. 2021. 6. 10.
[Oracle] 오라클 ROWNUM과 BETWEEN을 이용한 조회 NOTICE라는 테이블을 조회한다. SELECT * FROM NOTICE; 여기서 이제 ROWNUM을 같이 조회할 것이다. SELECT ROWNUM, * FROM NOTICE; 오류가 뜬다. 이유가 뭘까? 이유는 * 앞에 어느 스키마인지 지정되지 않아서이다. SELECT ROWNUM, NOTICE.* FROM NOTICE; 다시 실행해보면 잘 나온다. 여기서 이제 ROWNUM이 1번째에서 5번째 행까지 해당되는 데이터들을 찾아본다. SELECT ROWNUM, NOTICE.* FROM NOTICE WHERE ROWNUM BETWEEN 1 AND 5; 그렇다면 ROWNUM을 2번째부터 조회하면 어떻게 될까? SELECT ROWNUM, NOTICE.* FROM NOTICE WHERE ROWNUM BETWEEN.. 2021. 6. 10.
[Oracle] 오라클 정규표현식을 사용하여 문자열에서 핸드폰 번호가 있는 문자열 찾아내기 해당 컬럼의 데이터가 처음부터 끝까지 핸드폰번호로만 구성된 경우 SELECT * FROM TABLE WHERE REGEXP_LIKE(COLUMN, '^01[016-9]-\d{3,4}-\d{4}$'); '^01[016-9]-\d{3,4}-\d{4}$' 여기서 맨 처음의 ^는 컬럼의 데이터가 ^이후로 시작된다는 뜻 맨 끝의 $는 $이전으로 데이터가 끝난다는 뜻 찾고자 하는 데이터에서 핸드폰 번호가 포함되어 있는 컬럼을 찾는 경우 SELECT * FROM TABLE WHERE REGEXP_LIKE(COLUMN, '01[016-9]-\d{3,4}-\d{4}'); 2021. 6. 9.
728x90
반응형