반응형

분류 전체보기 303

매칭 되는 괄호 찾기

1. 문제 괄호가 존재하는 문자열에서 특정 괄호의 인덱스가 주어질 때, 그 괄호의 짝이 되는 괄호(열린 괄호 -> 닫힌 괄호, 닫힌 괄호 -> 열린 괄호)에 위치 인덱스를 배열로 출력하는 문제 입니다. 입력 문자열 입력 인덱스 출력 인덱스 "{kcc{orag}}{orange}" {0, 9, 11} {10, 4, 18} "{kcc{i{like}{dart}}{abcd}}{orange}" {0, 4, 11} {25, 18, 6} 2. 접근(추상) 예: "{kcc{orag}}{orange}" 1. 무조건 '열린 괄호'가 먼저 등장 한다. 2. 앞에서 부터 탐색을 시작하면, '닫힌 괄호'가 등장하면, 가장 최근에 등장한 '열린 괄호'와 짝 이다. 3. '열린 괄호', '닫힌 괄호'를 짝별로 저장해두면, 검색 시 ..

Algorithm 2020.10.26

숫자와 하이픈 패턴으로 같은 패턴 찾기 알고리즘

1. 문제 "010-1234-1234" 휴대폰 번호 "02-123-1234" 전화 번호 "1234-1234" A 자격증 번호 "123456-1234567" 주민번호 입력 출력 { "02-123-1234", "010-1234-1234", "010-2222-2222", "1234-1234"} {1, 1, 2} 예를 들어, 위와 같이 숫자의 개수가 같고, 하이픈(-)의 위치가 같으면, 같은 패턴으로 가정하고, 문자열 배열이 주어졌을 때, 같은 패턴 끼리의 개수를 오름차순 배열로 출력 하시오. 2. 2개의 문자열이 같은 패턴인지 비교 로직 import java.util.*; import java.util.stream.Collectors; public class One { public static void mai..

Algorithm 2020.10.26

백준 14501번 - 퇴사

14501번: 퇴사 첫째 줄에 백준이가 얻을 수 있는 최대 이익을 출력한다. www.acmicpc.net 1. 문제 오늘 부터 N + 1일째 되는 날 퇴사를 하기 위해서, 남은 N일 동안 적절히 상담을 잡아, 최대 수익을 출력 해야 하는 문제 입니다. 예시로 주어진 입력 값인데요, Ti = 는 상담 기간, Pi = 상담을 해줌으로써 얻을수 있는 수익 입니다. 예를 들어, 1일에 상담을 하면 2, 3일은 상담을 할수 없고, 10의 수익을 얻을수 있습니다. 이때, 최대 수익을 출력 하시오. 2. 접근 1. 다이나믹 프로그래밍(dp)를 통해서 접근 할 수 있습니다. 2. 현재 상담 일자의 수익(p[i]) + 현재 상담을 진행 한 후, 부터 얻을 수 있는 최대 수익(t[i] + i) 3. 위와 같은 점화식을 떠..

Algorithm 2020.10.24

백준 14888번 - '연산자 끼워넣기'

1. 문제 백준 14888번(연산자 끼워넣기) N개의 수로 이루어진 수열이 주어지고, N - 1개의 연산자가 주어집니다. 연산자는 덧셈(+), 뺄셈(-), 곱셈(x), 나눗셈(÷) 으로만 이루어져 있습니다. 이 연산자들은 연산자 우선순위를 무시하고, 앞에서 부터 연산을 합니다. 이때, 구할수 있는 최대값과 최소값을 구하시오. 나눗셈의 경우에는 몫만 취하고 나머지 값은 버립니다. 그리고 음수를 양수로 나눌때는 음수를 양수로 바꾼 뒤 몫을 취하고, 몫을 음수로 바꾸어 계산 합니다. 2. 접근(추상) 1. 주어진 연산자들(n-1개) 중에 n-1개를 뽑아야 합니다. 2. 하지만, 이 연산자들의 순서에 따라서, 값이 달라집니다. 3. 따라서, 순열을 사용합니다. 4. 연산자들 중 중복으로 사용 가능한 연산자도 주..

Algorithm 2020.10.23

Android ConstraintLayout 사용법

1. 왜 ConstraintLayout을 쓰나요? LinearLayout으로 Android의 UI를 그리게 되면 꽤 많은 중첩 Layout을 만들어 냅니다. 이렇게 많은 중첩 Layout은 Android가 화면 프레임을 그리는데 있어서 속도가 많이 느려집니다. RelativeLayout는 멀티 디바이스의 해상도의 따라서 대응하기가 힘듬니다. 따라서 ConstraintLayout 이 등장 했습니다. ConstraintLayout은 중첩된 Layout을 지양하고, flat Layout을 지향 합니다. flat Layout은 중첩된 Layout이 아닌, ConstraintLayout 1개의 layout 으로 구성된 Layout을 의미 합니다. ConstraintLayout 의 제약 조건을 이용하여 UI Com..

Android 2020.10.21

백준 18352번 - '특정 거리의 도시 찾기'

18352번: 특정 거리의 도시 찾기 첫째 줄에 도시의 개수 N, 도로의 개수 M, 거리 정보 K, 출발 도시의 번호 X가 주어진다. (2 ≤ N ≤ 300,000, 1 ≤ M ≤ 1,000,000, 1 ≤ K ≤ 300,000, 1 ≤ X ≤ N) 둘째 줄부터 M개의 줄에 걸쳐서 두 개�� www.acmicpc.net 1. 문제 1번 부터 N번 까지의 도시가 M개의 단방향 도로가 존재 합니다. 모든 도로의 거리는 1로 같습니다. 이 때 X번 도시 부터 출발 하여 최단 거리가 K인 모든 도시들의 번호를 출력하는 프로그램을 작성 하시오. (2

Algorithm 2020.10.16

RxJava의 Single, Maybe 클래스

RxJava 에서 Observable 클래스 만큼 자주 쓰이지 않지만, 종종 보이는 Single, Maybe 클래스에 대해서 알아 보겠습니다. 1. Single 클래스 Observable은 데이터를 무한하게 발행 할수 있지만, Single 클래스는 오직 1개의 데이터만 발행하도록 한정 합니다. 보통 결과가 유일한 서버 API를 호출할 때 유용하게 사용 할수 있습니다. 따라서, 데이터 하나가 발행과 동시에 종료 됩니다. onNext(), onComplete() 함수가 onSuccess() 함수로 통합된 것 입니다. 따라서, Single 클래스의 라이프 사이클 함수는 onSuccess(T value) 함수와 onError() 함수로 구성 됩니다. // 1. first() 함수를 호출해 Single 객체 생성..

Reactive Programing 2020.10.15

공인인증서 비번 오류 횟수 제한 없이 확인 하는 법

공인인증서 비번 오류 횟수 제한 없이 확인 하는 법을 알아 볼까 합니다. 공인인증서 비번을 5번 틀려서 한번쯤 은행에 가서 공인인증서 잠금을 해제하거나, 아예 공인인증서를 재발급 받는 경우가 있습니다. 이런 경우 굉장히 번거롭고, 귀찮은 과정을 거쳐야 합니다. 그래서 오류 제한 없이 마음껏 공인인증서 비밀번호를 확인 할수 있는 방법이 있습니다. 1. 한국정보인증 (KICA) 방문 한국정보인증 No.1 공인인증서발급 서비스 www.signgate.com 위 사이트 KICA 한국정보인증의 방문 해주세요. 2. 인증서 관리 -> 인증서 암호 확인 메인 화면의 '인증서 관리' -> '인증서 암호 확인' 을 클릭해서 들어가 주세요. 3. 인증서 암호 확인 -> 바로가기 '인증서 암호 확인' -> '바로가기' 를 ..

기타 2020.10.13

감시 피하기 - '백준 18428번'

18428번: 감시 피하기 NxN 크기의 복도가 있다. 복도는 1x1 크기의 칸으로 나누어지며, 특정한 위치에는 선생님, 학생, 혹은 장애물이 위치할 수 있다. 현재 몇 명의 학생들은 수업시간에 몰래 복도로 빠져나왔는데, 복 www.acmicpc.net 1. 문제 n x n 의 복도가 주어졌습니다. 선생님과 학생의 위치가 n x n의 2차원 배열의 주어졌을때, 선생님은 상, 하, 좌, 우 로 학생이 있는지 감시 할수 있습니다. 그런데 선생님의 눈이 너무 좋아서 끝까지 학생이 있는지 없는지 확인 할 수 있습니다. 이때, 3개의 장애물을 설치 할 수 있습니다. 학생 앞의 장애물이 놓이면, 선생님은 학생을 발견 할 수 없습니다. 이때 선생님과 학생의 위치를 알 수 있는 n x n 의 2차원 배열이 주어 졌을 ..

Algorithm 2020.10.11

Android 프로젝트 복제

기존의 Android 프로젝트를 그대로 다시 만들어야 되는 경우가 있습니다. 다음 순서로 복제 할 수 있습니다. 많이 복잡하지 않으니깐, 차근차근 고쳐 보아요. 1. 폴더 복사 붙여넣기 복제 하고 싶은 프로젝트 최상위 폴더를 복사, 붙여넣기 합니다. 그렇게 새로 만든 폴더의 이름도 그의 맞게 변경해 주세요. 2. Android Studio Import Android Studio 에서 File - New - 'Import Project' 에서 1번에서 복/붙 해서 만든 폴더를 선택해 주세요. 3. 패키지명 변경 Import Project 를 하면, 새롭게 프로젝트 창이 나타나게 됩니다. 그럼 제일 먼저, java의 package 명을 변경해 주세요. 패키지 우클릭 - Refactor - Rename - R..

Android 2020.10.08
반응형