Algorithm
-
[문자열] 암호Algorithm 2025. 10. 2. 15:35
설명현수는 영희에게 알파벳 대문자로 구성된 비밀편지를 매일 컴퓨터를 이용해 보냅니다.비밀편지는 현수와 영희가 서로 약속한 암호로 구성되어 있습니다.비밀편지는 알파벳 한 문자마다 # 또는 *이 일곱 개로 구성되어 있습니다.만약 현수가 “#*****#”으로 구성된 문자를 보냈다면 영희는 현수와 약속한 규칙대로 다음과 같이 해석합니다.1. “#*****#”를 일곱자리의 이진수로 바꿉니다. #은 이진수의 1로, *이진수의 0으로 변환합니다. 결과는 “1000001”로 변환됩니다.2. 바뀐 2진수를 10진수화 합니다. “1000001”을 10진수화 하면 65가 됩니다.3. 아스키 번호가 65문자로 변환합니다. 즉 아스크번호 65는 대문자 'A'입니다.참고로 대문자들의 아스키 번호는 'A'는 65번, ‘B'는 66..
-
[문자열] 문자열 압축Algorithm 2025. 10. 2. 14:16
설명알파벳 대문자로 이루어진 문자열을 입력받아 같은 문자가 연속으로 반복되는 경우 반복되는문자 바로 오른쪽에 반복 횟수를 표기하는 방법으로 문자열을 압축하는 프로그램을 작성하시오.단 반복횟수가 1인 경우 생략합니다.입력첫 줄에 문자열이 주어진다. 문자열의 길이는 100을 넘지 않는다.출력첫 줄에 압축된 문자열을 출력한다.예시 입력 1 KKHSSSSSSSE예시 출력 1K2HS7E예시 입력 2 KSTTTSEEKFKKKDJJGG예시 출력 2KST3SE2KFK3DJ2G2 문제풀이public class chap11 { public String solution(String str){ String answer = ""; str = str+" "; // 마지막 알파벳 숫자를 위해 ..
-
[문자열] 유효한 팰린드롬Algorithm 2025. 9. 24. 22:14
8. 유효한 팰린드롬설명앞에서 읽을 때나 뒤에서 읽을 때나 같은 문자열을 팰린드롬이라고 합니다.문자열이 입력되면 해당 문자열이 팰린드롬이면 "YES", 아니면 “NO"를 출력하는 프로그램을 작성하세요.단 회문을 검사할 때 알파벳만 가지고 회문을 검사하며, 대소문자를 구분하지 않습니다.알파벳 이외의 문자들의 무시합니다.입력첫 줄에 길이 100을 넘지 않는 공백이 있는 문자열이 주어집니다.출력첫 번째 줄에 팰린드롬인지의 결과를 YES 또는 NO로 출력합니다.예시 입력 1 found7, time: study; Yduts; emit, 7Dnuof예시 출력 1YES 문제풀이 1(문자열 자체 활용)package org.example.infrenJavaCodingTest.section2;import java.util..
-
PriorityQueueAlgorithm 2025. 8. 11. 21:53
package org.example.infrenJavaCodingTest.section9;import java.util.*;class Lecture implements Comparable { public int money; public int time; public Lecture(int money, int time) { this.money = money; this.time = time; } @Override public int compareTo(Lecture o) { return o.time-this.time; }}public class chap4_PriorityQueue { static int n, max = Integer..
-
[백준] 1238 파티Algorithm 2025. 8. 9. 21:42
https://www.acmicpc.net/problem/1238 해당 문제는 생각을 조금 바꾸면 성능을 향상시킬 수 있다. 다익스트라는 출발점에서 각각의 목적지까지 최단거리를 알아내는 것.그러나 문제에서는 목적지가 주어짐. 이때, 역방향 그래프를 이용하면 한번의 다익스트라 실행으로 각 경로의 최단거리를 모두 알아낼 수 있다. 첫번째 제출 n,m,x = map(int, input().split())INF = int(1e8)graph = [[] for _ in range(n+1)]graph2 = [[] for _ in range(n+1)]distance = [INF]*(n+1)distance2 = [INF]*(n+1)for _ in range(m): u,v,w = map(int,input().spl..
-
[백준] 10820 문자열 분석Algorithm 2025. 8. 5. 22:35
[문제]https://www.acmicpc.net/problem/10820 [풀이] import syspublic class Solution { public static void main(String[] args) { lines = [] try: while True: line = input() if line == "": break lines.append(line) except EOFError: pass for l in lines: a, A, digit, space = 0, 0, ..
-
최단경로알고리즘Algorithm/theory 2024. 10. 13. 23:15
최단 경로 알고리즘 - 가장 짧은 경로를 찾는 알고리즘이다. '길 찾기' 문제라고도 불린다. - 대표적으로는1. '한 지점에서 다른 특정 지점까지 최단 경로를 구해야 하는' 다익스트라 알고리즘2. '모든 지점에서 다른 모든 지점까지 최단 경로를 모두 구해야 하는' 플로이드 워셜 알고리즘이 있다. - 보통 '그래프' 를 이용해 표현된다.1. 각 지점은 '노드'로 , 연결된 도로는 '간선'으로 표현된다 다익스트라 알고리즘- 특정 노드에서 다른 특정 노드로 가는 각각의 최단 경로를 구해주는 알고리즘- 음의 간선(0보다 작은 값을 가지는 간선) 이 없을 때 사용- 현실 세계의 gps 알고리즘으로 채택된다 -> 현실세계에서는 음의 간선이 없으므로 가능- 매 단계 가장 비용이 적은 노드를 선택해서 과정을 반복하므로..
-
안전지대Algorithm/programers 2024. 8. 18. 21:58
문제 설명다음 그림과 같이 지뢰가 있는 지역과 지뢰에 인접한 위, 아래, 좌, 우 대각선 칸을 모두 위험지역으로 분류합니다.지뢰는 2차원 배열 board에 1로 표시되어 있고 board에는 지뢰가 매설 된 지역 1과, 지뢰가 없는 지역 0만 존재합니다.지뢰가 매설된 지역의 지도 board가 매개변수로 주어질 때, 안전한 지역의 칸 수를 return하도록 solution 함수를 완성해주세요.제한사항board는 n * n 배열입니다.1 ≤ n ≤ 100지뢰는 1로 표시되어 있습니다.board에는 지뢰가 있는 지역 1과 지뢰가 없는 지역 0만 존재합니다.입출력 예board result[[0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 1, 0, 0], [0..