본문 바로가기

Computer Science/PS

(20)
프로그래머스 특수문자 출력하기 import java.util.Scanner; public class Solution { public static void main(String[] args) { System.out.print("!@#$%^&*(\\'\"?:;"); } } \ 백슬래쉬 같은 특수문자들은 그냥 출력이 안된다. 그냥 출력하기 위해선 \\ 두개 를 달아야 \ 하나가 나온다. ' " 또한 \" , \' 식으로 달아야 출력이 된다.
[Lv0] 대소문자 바꿔서 출력하기 -Java
11279 최대 힙 자료 구조 우선순위 큐 이 문제를 풀기 위해선 힙에 대해 알아야 합니다. 힙(heap)은 데이터의 삽입과 삭제가 가능한 자료구조 중 하나로, 최댓값 또는 최솟값을 빠르게 찾아내는 연산을 지원합니다. 일반적으로 우선순위 큐(priority queue)와 같은 형태로 사용됩니다. 힙은 완전 이진트리(complete binary tree)를 기반으로 한 자료구조로, 부모 노드의 값이 항상 자식 노드의 값보다 큰 경우를 최대 힙(max heap)이라 하고, 그 반대의 경우를 최소 힙(min heap)이라고 합니다. 힙에서는 다음과 같은 연산을 지원합니다. 삽입: 힙의 마지막 노드에 새로운 값을 삽입하고, 힙의 특성을 유지합니다. 삭제: 힙의 루트 노드를 삭제하고, 힙의 특성을 유지합니다. 최댓값 또는 최솟값이 ..
11726 2xn 타일링 (JAVA) ●다이나믹 알고리즘 2xN 크기의 직사각형을 1x2, 2x1 타일로 채우는 방법의 수를 구하는 문제이다. import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.*; public class Main { static PriorityQueue que = new PriorityQueue(); public static void main(String[] args) throws Exception { BufferedReader br =new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st = new StringTokenizer(br.readLine())..
1798 수들의 합 JAVA ●수학 ●그리드 알고리즘 1+2+3+4+5+6+7+8+9+10 = 55 했을 때 제일 큰 자연수를 말한다. S 가 55 이니 제일 큰 자연수는 10 import java.util.*; public class Main { public static void main(String[] args) throws Exception { Scanner sc = new Scanner(System.in); long S = sc.nextLong(); long sum =0; int cnt = 0; for(int i=1; ; i++){ if(sum > S){ break; } sum += i; cnt++; } System.out.println(cnt-1); } }
1911 흙길 보수하기 (Java) https://www.acmicpc.net/problem/1911 정렬 스위핑 1911번: 흙길 보수하기 어젯밤 겨울 캠프 장소에서 월드 본원까지 이어지는, 흙으로 된 비밀길 위에 폭우가 내려서 N (1
알고리즘 문제 해결 PICNIC 짝이 될 수 있는 모든 경우의 수를 구하는 문제 4 6 0 1 1 2 2 3 3 0 0 2 1 3 이 경우에는 {0,1} {1,2} {2,3} {3,0} {0,2} {1,3} 0,1을 고른 상태에서 나머지 쌍들을 → 방향으로 확인 하는 것이다. 1,2는 앞서 고른 1과 중복이 되서 패스, 2,3 은 선택 할 수있다. 그러면 다시 2,3, 제외하고 그 뒤로 연결되는게 있는지 확인을 한다. 그렇게 0,1을 기준으로 확인이 다 끝났으면 그 다음 1,2 또 끝나면 2,3 이렇게 확인 하는 것이다. 이 문제의 base 기준은 1.모든 학생들이 짝을 이루었을 때 → 1 2.다 확인을 했는데 결국에는 짝을 이루지 못했을때 → 0 recuersive는 0 기준이 될 때 1~5까지 확인 1 기준이 될 때 2~5 확인 2..
알고리즘 문제 해결 BOGGLE #Boggle 무식하게 푼다. 일명 (brute-force)는 컴퓨터의 빠른 속도를 이용해 가능한 경우의 수를 일일이 나열하면서 답을 찾는 방법을 의미한다. 예를 들면 두 점 사이의 최단 경로를 찾는 문제라면 두 점 사이의 경로들을 하나 하나 전부 만들어서 그중 가장 짧은 것을 찾는 방법 이다. 이러한게 “무식한” 알고리즘의 좋은 예이다. 이러한 가능한 모든 경우의 수를 세는 문제를 완전 탐색이라고 부릅니다. 재귀 호출과 완전 탐색 우리가 들여다보는 범위가 작아지면 작아질수록 각 조각들의 형태가 유사해지는 작업들을 볼 수 가 있습니다. 완전히 같은 코드를 반복해 실행하는 for 같은 반복문이 이와 같은 예시 입니다. 이런 작업에 유용하게 사용되는 개념이 재귀 함수, 재귀 호출 입니다. 쪼개지지 않은 가장..
알고리즘 시간 복잡도 분석 #1 알고리즘의 수행시간을 측정하는 기준은 바로 반복문이다. 선형시간알고리즘O(N) 다이어트 분포의 평균 구하기 선형이하시간알고리즘O(NlogN) 성형 전 사진 찾기(이진 탐색) 다항시간 알고리즘 시간복잡도가 O(N), O(N^2) … O(N^600) 다항 끼리의 시간차이도 엄청난다. -소인수 분해 1보다 크고 소인수들만의 곱을 계산 파란색:선형이하시간 알고리즘 초록색:다항시간알고리즘 단 여기서 입력의 크기가 작으면 시간복잡도에 큰 의미를 주지는 않는다. 입력의 종류에 따른 수행 시간의 변화 입력의 크기 말고도 입력을 어떻게 받느냐도 중요함 삽입정렬을 예로 들자면 배열의 인수들이 가지런하게 정렬이 되어 있는 상태라면 O(1), 선형의 시간으로 본다면 O(N) , 최악은 O(N^2) 삽입 정렬을 흔히 사용..
1166 선물 이진탐색 import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.*; public class Main { public static void main(String[] args) throws Exception { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st = new StringTokenizer(br.readLine()); long n= Integer.parseInt(st.nextToken()); long l= Integer.parseInt(st.nextToken()); long w= Integer..