일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 |
- 반복문
- 에라토스테네스의 체
- 조합
- 완전탐색
- Stack
- 어려웠던 문제
- 알고리즘
- 점프와 순간이동
- 최소공배수
- dfs
- 메뉴리뉴얼
- 문자열
- Dynamic Programming
- HashMap
- 쿼드압축 후 개수세기
- HashSet
- 프로그래머스
- Java
- pandas
- 보이어무어
- 규칙찾기
- 후위 표기법
- python
- 영문자 확인
- 완전 탐색
- 동적계획법
- 튜플
- 순열
- 2017 카카오 코드
- fragment identifier
- Today
- Total
목록Java (52)
csmoon1010의 SW 블로그
0. 문제 유형 : 반복문의 적절한 활용, (하위 버전의) 완전 탐색 1. 문제 이해 programmers.co.kr/learn/courses/30/lessons/68644 코딩테스트 연습 - 두 개 뽑아서 더하기 정수 배열 numbers가 주어집니다. numbers에서 서로 다른 인덱스에 있는 두 개의 수를 뽑아 더해서 만들 수 있는 모든 수를 배열에 오름차순으로 담아 return 하도록 solution 함수를 완성해주세요. 제한 programmers.co.kr (1) 주요 요구사항 : 주어진 정수 배열 numbers에서 서로 다른 인덱스의 두 수를 뽑아 더해서 만들 수 있는 모든 수 (2) 추가 조건 : 배열에 오름차순으로 담아 return 2. 전략 (1) 두 개의 수를 뽑아 더하기 - 모든 경우의..
0. 문제 유형 : Set, Map 등 적절한 자료구조 활용하기 1. 문제 이해 programmers.co.kr/learn/courses/30/lessons/64065 코딩테스트 연습 - 튜플 "{{2},{2,1},{2,1,3},{2,1,3,4}}" [2, 1, 3, 4] "{{1,2,3},{2,1},{1,2,4,3},{2}}" [2, 1, 3, 4] "{{4,2,3},{3},{2,3,4,1},{2,3}}" [3, 2, 4, 1] programmers.co.kr (1) n-튜플(n-tuple) : n개의 요소를 가진 튜플 (a1, a2, a3, ..., an) - 중복 원소 가능 (BUT 문제에서는 중복되는 원소가 없는 튜플 형태로 고려) - 원소에 정해진 순서가 있다. - 튜플의 원소 개수는 유한하다...
0. 문제 유형 : 완전 탐색(순열을 통해 모든 case 확인) 1. 문제 이해 programmers.co.kr/learn/courses/30/lessons/1835 코딩테스트 연습 - 단체사진 찍기 단체사진 찍기 가을을 맞아 카카오프렌즈는 단체로 소풍을 떠났다. 즐거운 시간을 보내고 마지막에 단체사진을 찍기 위해 카메라 앞에 일렬로 나란히 섰다. 그런데 각자가 원하는 배치가 모두 programmers.co.kr 주어진 조건에 따라 배치할 수 있는 경우의 수를 리턴하기 (1) 제한 조건 - n : 입력 조건의 개수 (1 , num) continue; else if(operator.equals("
**주목해야 할 문제 : 완전탐색의 대표적인 예인 "순열, 조합"을 이용한 문제 1. 문제 이해 - numbers : 한자리 숫자가 적힌 종이 조각(1~7의 길이인 문자열) - numbers의 종이 조각들을 조합하여 만들 수 있는 소수의 개수 return 2. 전략 (1) 종이조각 나누기 : substring을 이용해 String 배열에 넣기 (2) 대상이 되는 경우들 구하기(완전 탐색) - 순열을 이용해 모든 경우를 담은 HashSet 만들기 - 순열 : 자리 고정 & swap 방식 이용 esw-csmoon.tistory.com/entry/%EC%88%9C%EC%97%B4%EC%A1%B0%ED%95%A9-%EC%99%84%EC%A0%84%ED%83%90%EC%83%89 순열/조합 (완전탐색) 1. 완전..

1. 완전탐색(Brute-force)? : 모든 경우의 수를 탐색하여 문제를 푸는 방식. 대표적인 예로 순열, 조합이 있음 2. 순열(Permutation, nPk) : n개의 요소들 중 k개를 뽑아 '정렬'할 수 있는 경우의 수 (1) 전통적인 순열 구하는 방법 - k개의 자리에 올 수 있는 요소의 개수를 세는 방식 - n x (n-1) x (n-2) x ... x (n-k+1) = n! / (n-k) ! - 단, 위의 수식은 단순히 "개수"를 구하는 방법일 뿐 완전탐색에 조건을 적용하기엔 부족함 (2) 순열 알고리즘 : 0~k번째에 수를 고정시킨다. [과정] ① depth번째 수 고정 - 방법1) 첫번째 수와의 swap을 통해 지정 - 방법2) 고정여부를 담은 visited배열(n과 같은 길이)에 표..
level2 카카오의 단체사진찍기 문제에서 완전탐색을 구현하는 법을 완전 잊어버렸다!!ㅠㅠ 그래서 전에 풀어봤던 완전탐색 문제들을 먼저 풀어보기로 했다. 1. 문제 이해 - 3명의 수포자가 일정한 규칙에 따라 문제를 찍음 1번 수포자가 찍는 방식: 1, 2, 3, 4, 5, 1, 2, 3, 4, 5, ... ▶ {1, 2, 3, 4, 5} 반복 2번 수포자가 찍는 방식: 2, 1, 2, 3, 2, 4, 2, 5, 2, 1, 2, 3, 2, 4, 2, 5, ... ▶ {2, 1, 2, 3, 2, 4, 2, 5} 반복 3번 수포자가 찍는 방식: 3, 3, 1, 1, 2, 2, 4, 4, 5, 5, 3, 3, 1, 1, 2, 2, 4, 4, 5, 5, ... ▶ {3, 3, 1, 1, 2, 2, 4, 4, 5..

1. 문제 이해 - n개의 수의 최소공배수 구하기 : n개 수들의 배수 중 공통이 되는 가장 작은 숫자 2. 전략 1) n개 수의 최소공배수 특성 - 기존 고전적인 최소공배수 해결법에서 착안 ⓐ 최소 2개의 수에서 2 이상의 공약수를 발견 ⓑ 해당 수들은 공약수로 나눔 ⓒ 공약수가 발견될 때까지 과정 반복 2) 알고리즘 개요 작성 - 공약수 구하는 법 : 각 수의 소인수분해한 결과들에서 공통된 수를 찾기 - 고전 해결법을 보면, 각 단계에서 중복되는 공약수가 있다면 1번만 곱셈 수행 ▶ 결론 (1) 각 수의 소인수분해 list & 중복을 제거한 소인수 set 구하기 ⓐ 소인수분해 list - result : 각 수의 소인수분해 결과를 담은 ArrayList로 이루어진 배열 - 소인수분해 - getPrim..
1. 문제 이해 programmers.co.kr/learn/courses/30/lessons/12951 - JadenCase : 모든 단어의 첫 문자가 대문자, 그 외의 알파벳은 소문자인 문자열 (단, 첫 문자가 영문이 아닐 때 이어지는 영문은 소문자) - 문자열 s를 JadenCase로 바꾼 문자열 리턴 2. 전략 1) 문자열의 각 문자에 대해서 반복 ( target = s.charAt(i) ) - 공백인 경우 : count를 0으로 초기화 / 공백 - 알파벳인 경우( ASCII 코드 값 : 65~122 ) ⓐ 알파벳이 맞음 - count == 0 (첫 문자) : 대문자로 변경 toUpperCase() - count > 0 : 소문자로 변경 toLowerCase() ⓑ 알파벳이 아님 - 그대로 coun..