문제N+1개의 I와 N개의 O로 이루어져 있으면, I와 O이 교대로 나오는 문자열을 PN이라고 한다.P1 : IOIP2 : IOIOIP3 : IOIOIOIPN : IOIOI...OI (O가 N개)I와 O로만 이루어진 문자열 S와 정수 N이 주어졌을 때, S안에 PN이 몇 군데 포함되어 있는지 구하는 프로그램 작성입력첫째 줄에 N이 주어진다. 둘째 줄에는 S의 길이 M이 주어지며, 셋째 줄에 S가 주어진다.출력S에 PN이 몇 군데 포함되어 있는지 출력한다.제한1 ≤ N ≤ 1,000,0002N+1 ≤ M ≤ 1,000,000S는 I와 O로만 이루어져 있다.문제 풀이1. HashMap 초기값 설정KeyValue인덱스 번호기준 문자열 길이만큼 쪼갠 문자열들예를 들어, 입력이 이렇다면 아래와 같이 쪼갠 문자열들..
문제 설명전화번호부에 적힌 전화번호 중, 한 번호가 다른 번호의 접두어인 경우가 있는지 확인하려 합니다.전화번호가 다음과 같을 경우, 구조대 전화번호는 영석이의 전화번호의 접두사입니다.구조대 : 119박준영 : 97 674 223지영석 : 11 9552 4421전화번호부에 적힌 전화번호를 담은 배열 phone_book 이 solution 함수의 매개변수로 주어질 때,어떤 번호가 다른 번호의 접두어인 경우가 있으면 false를 그렇지 않으면 true를 return 하도록 solution 함수를 작성해주세요. 제한 사항phone_book의 길이는 1 이상 1,000,000 이하입니다.각 전화번호의 길이는 1 이상 20 이하입니다.같은 전화번호가 중복해서 들어있지 않습니다.입출력 예제phone_bookretu..
섬 연결하기 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr코드import java.util.*;class Solution { public int solution(int n, int[][] costs) { int answer = 0; // 최종적으로 반환할 최소 비용 // 그래프를 인접 리스트로 표현 List> graph = new ArrayList(); for (int i = 0; i ()); // 각 섬(i)에 대한 간선 리스트 초기화 } // 주어진 비용 배열을 기반으로 그래프의 간선을 추가..
조이스틱class Solution { public int solution(String name) { // 알파벳 바꾸는 횟수 int answer = 0; // 오른쪽으로 쭉 갈때 가능한 조작횟수 int move = name.length() - 1; for (int i = 0; i 문제 풀이 / 알고리즘기본 변수 설정int answer = 0; // 알파벳을 변경하는데 필요한 상하 조작 횟수int move = name.length() - 1; // 기본 이동 횟수 (오른쪽으로 쭉 이동하는 경우)알파벳 변경 횟수 계산answer += Math.min(name.charAt(i) - 'A', ('Z' + 1) - name.charAt(i))..
모음사전class Solution { public int solution(String word) { String DICTIONARY = "AEIOU"; int[] INCREASE = {781, 156, 31, 6, 1}; int answer = word.length(); for (int i = 0; i 문제 풀이 / 알고리즘 단어 목록 (1~200) 1. A 2. AA 3. AAA 4. AAAA 5. AAAAA 6. AAAAE 7. AAAAI 8. AAAAO 9. AAAAU 10. AAAE ..
최적의 값을 구해야 하는 상황에서 사용되는 근시안적인 방법론각 단계에서 최적이라고 생각되는 것을 선택해 나가는 방식으로 진행하여 최종적인 해답에 도달하는 알고리즘항상 최적의 값의 '근사한 값'을 목표로 한다.주 사용 : 문제를 분할 가능한 문제들로 분할 → 각 문제들에 대한 최적해를 계산 → 결합더보기💡 근시안적 방법론단기적인 목표를 중심으로 한 전략적인 접근 방법이 방법론은 주로 현재의 문제를 해결하는데 초점을 두고, 장기적인 전망 보다는 단기적인 성과를 중요시한다.💡 근사 알고리즘최적의 해를 구할 수 없는 문제에서 근사한 해를 구하는 알고리즘항상 최적의 해를 보장하지는 않지만, 많은 경우에는 최적해에 근접한 값을 구할 수 있다. 그리디 알고리즘의 주요 속성💡 문제를 풀 때 두 가지 조..
전력망을 둘로 나누기 문제 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr문제를 풀면서 고민한 내용을 후에 다시 보고자 정리한 내용입니다!순서랑 문맥이 뒤죽박죽인데,,, 미래의 내가 수정하겠지 하고 일단 흐린눈할게요.. 문제 분석그래프로 주어진 전력망에서 각 노드가 전력망의 지점이고, 두 노드는 간선으로 연결전력망을 둘로 나누는 방법을 찾아야 함,,,두 부분 그래프의 크기 차이가 최소화 + 나눈 후 그래프의 정점 수 차이 최소화각 부분 그래픅가 연결되어 있어야 하니까 연결된 부분을 찾는 방법이 중요할 듯...전략그래프를 두 부분으로 나누는 방법이진 트리로 생각해서, DFS를 통해 나아의 부분 그래프 구성..
모의고사 문제import java.util.*;class Solution { public int[] solution(int[] answers) { int[][] patterns = { {1, 2, 3, 4, 5}, {2, 1, 2, 3, 2, 4, 2, 5}, {3, 3, 1, 1, 2, 2, 4, 4, 5, 5} }; // 각 학생의 점수를 기록할 배열 int[] score = new int[3]; // 각 학생들의 맞춘 문제의 수 확인 for (int i = 0; i list = new ArrayList(); for (int i = 0; i 문제 풀..
- Total
- Today
- Yesterday
- brute-force
- Greedy
- Kotlin
- Security
- 디자인패턴
- Effective Java
- Spring Security
- db
- programmers
- 백준
- Spring
- Algorithm
- Annotation
- Java
- Spring Boot
- 생활코딩
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 | 31 |