![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/yj4WH/btq5f3xtBbL/1CJtswp4gTkjwHSNC6fJq1/img.png)
https://www.acmicpc.net/problem/1644 1644번: 소수의 연속합 첫째 줄에 자연수 N이 주어진다. (1 ≤ N ≤ 4,000,000) www.acmicpc.net ⊙ 문제 ⊙ 입력 ⊙ 출력 ⊙ 예제 입출력 ⊙ 알고리즘 분류 수학 정수론 두 포인터 소수 판정 에라토스테네스의 체 ⊙ 문제 접근 과정 에라토스테네스의 체 알고리즘으로 소수로 이루어진 리스트를 먼저 만들어준다. 투 포인터 알고리즘으로 값을 찾아준다. n 입력 에라토스테네스의 체 알고리즘으로 prime_num이라는 소수로 이루어진 리스트 생성 값을 찾기 위해 반복문을 돌려준다. (투 포인터 알고리즘) 값이 같으면 count up 작으면 end 증가 크면 start 증가 ⊙ 문제 풀이 n = int(input()) is_..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/4qIg7/btq5adolwkX/xtGSrMkt88KHFyGyjcgIXk/img.png)
https://www.acmicpc.net/problem/1541 1541번: 잃어버린 괄호 첫째 줄에 식이 주어진다. 식은 ‘0’~‘9’, ‘+’, 그리고 ‘-’만으로 이루어져 있고, 가장 처음과 마지막 문자는 숫자이다. 그리고 연속해서 두 개 이상의 연산자가 나타나지 않고, 5자리보다 www.acmicpc.net ⊙ 문제 ⊙ 입력 ⊙ 출력 ⊙ 예제 입출력 ⊙ 알고리즘 분류 수학 문자열 그리디 알고리즘 파싱 ⊙ 문제 접근 과정 이번 문제의 KeyPoint를 짚고 넘어가자. KeyPoint: 연속해서 두 개 이상의 연산자가 나타나지 않는다. +, -, \0이 아니면 temp에 저장 +, -, \0이면 temp 저장한 값을 stoi 함수를 통해 int형 result에 저장 result에 저장할 때 부호를 ..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/bpkH81/btq5azYLob7/kuTnZNlbAjXnGD0CLRMZAk/img.png)
https://www.acmicpc.net/problem/1654 1654번: 랜선 자르기 첫째 줄에는 오영식이 이미 가지고 있는 랜선의 개수 K, 그리고 필요한 랜선의 개수 N이 입력된다. K는 1이상 10,000이하의 정수이고, N은 1이상 1,000,000이하의 정수이다. 그리고 항상 K ≦ N 이다. 그 www.acmicpc.net ⊙ 문제 ⊙ 입력 ⊙ 출력 ⊙ 예제 입출력 ⊙ 알고리즘 분류 이분 탐색 매개 변수 탐색 ⊙ 문제 접근 과정 이분 탐색 알고리즘으로 풀었다. 코드를 짜는 데는 시간이 얼마 걸리지 않았지만 여러 자잘한 애러를 잡아내는데 시간이 더 소요된 문제다. 시간 복잡도는 O(N^2)이다. 더 줄이고 싶었지만 아이디어가 생각이 안 났다. max_element를 사용했기 때문에 0을 입..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/nDXbT/btq5c6HYBc3/hHziNxCVsMe8UTZVHF0ki0/img.png)
https://www.acmicpc.net/problem/1806 1806번: 부분합 첫째 줄에 N (10 ≤ N < 100,000)과 S (0 < S ≤ 100,000,000)가 주어진다. 둘째 줄에는 수열이 주어진다. 수열의 각 원소는 공백으로 구분되어져 있으며, 10,000이하의 자연수이다. www.acmicpc.net ⊙ 문제 ⊙ 입력 ⊙ 출력 ⊙ 예제 입출력 ⊙ 알고리즘 분류 두 포인터 ⊙ 문제 접근 과정 투 포인터 알고리즘으로 풀었다. start, end는 배열 a의 index를 나타낸다. len의 초기값은 N의 최대값인 100,000보다 더 큰 100,001로 설정하고 min과 계속 비교해주어 갱신해주었다. 만약 그러한 합이 불가능하면 len의 값은 100,001이므로 마지막에 len의 값이..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/ekrDGj/btq434rvHYb/m47zZZqYPpNZr9XI36JMF1/img.png)
https://www.acmicpc.net/problem/2003 2003번: 수들의 합 2 첫째 줄에 N(1 ≤ N ≤ 10,000), M(1 ≤ M ≤ 300,000,000)이 주어진다. 다음 줄에는 A[1], A[2], …, A[N]이 공백으로 분리되어 주어진다. 각각의 A[x]는 30,000을 넘지 않는 자연수이다. www.acmicpc.net ⊙ 문제 ⊙ 입력 ⊙ 출력 ⊙ 예제 입출력 ⊙ 알고리즘 분류 두 포인터 ⊙ 문제 접근 과정 첫번째 풀이 [ 시간 복잡도 : O(N^2) ] 이중 for문을 통해 문제를 풀었다. 시간 복잡도 O(N^2)이지만 수의 범위(1 n >> m; int a[n+1]; for(int i=0;i> a[i]; } for(int i=0;i> m; int a[n+1]; for..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/b4QEKQ/btq5ac2MlW3/PxqFcGTioAkPacmNkka4BK/img.png)
https://www.acmicpc.net/problem/11728 11728번: 배열 합치기 첫째 줄에 배열 A의 크기 N, 배열 B의 크기 M이 주어진다. (1 ≤ N, M ≤ 1,000,000) 둘째 줄에는 배열 A의 내용이, 셋째 줄에는 배열 B의 내용이 주어진다. 배열에 들어있는 수는 절댓값이 109보다 작거 www.acmicpc.net ⊙ 문제 ⊙ 입력 ⊙ 출력 ⊙ 예제 입출력 ⊙ 알고리즘 분류 정렬 두 포인터 ⊙ 문제 접근 과정 문제에서 KeyPoint를 찾았는가? KeyPoint: 정렬되어 있는 정렬이 이미 되어있다. 그렇다면 인덱스만을 이용하여 문제를 풀 수 있지 않을까? 처음에는 "정렬되어 있는"을 무시하고 문제를 풀었는데 시간 초과가 떴다. #include #include #inclu..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/AYi1n/btq4Yjh7kQV/Nnsh80gkp4JgIs83858EO0/img.png)
⊙ 문제 다음은 Collections 클래스의 메서드를 테스트하는 프로그램이다. 다음과 같이 실행 결과가 나타나도록 테스트 프로그램을 작성하라. import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.List; public class Main { public static void main(String[] args) { String[] s = {"독수리", "고양이", "강아지"}; ________________________________; System.out.println(list); List all = new ArrayList(list); System.out.println("nC..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/QcIOC/btq44OAHKB7/tDLfSvYbAlqFfvJZmykaz0/img.png)
⊙ 문제 프로그램에 주어진 2개의 String 타입 배열을 이용해 프로그램의 주석대로 수행하는 프로그램을 작성하시오. public static void main(String[] args) { String[] s1 = {"a","b","a","b","c"}; String[] s2 = {"c"}; // 두 배열을 Collections의 addAll() 메서드를 이용해 HashSet 객체로 생성 // 2개의 HashSet 객체를 출력 // 2개의 HashSet 객체가 동일한지 비교한 값을 출력 // s1에 의한 HashSet이 s2에 의한 HashSet 원소를 모두 포함하는지 출력 // 2개의 HashSet 합집합과 교집합을 구해서 출력 } ⊙ 문제 접근 과정 주석과 똑같이 구현해주면 된다. ⊙ 문제 풀이 i..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/dXUfFs/btq4XXsSX4v/3JAOGi99c8WB1XHAGTvPv1/img.png)
⊙ 문제 HashMap의 원소는 키로 한글 동물 이름, 값으로 소문자 영어 동물 이름으로 구성되어 있는데, 다음 실행 결과가 나타나도록 Map 인터페이스의 replaceAll()를 사용하여 프로그램하라. ⊙ 문제 접근 과정 Map.of를 이용하여 먼저 값을 입력받고 HashMap으로 옮겨준다. 문제 조건의 replaceAll() 함수를 해준다. ※ toUpperCase( ) : 문자열을 모두 대문자로 변환한다. ⊙ 문제 풀이 import java.util.HashMap; import java.util.Map; public class Main { public static void main(String[] args) { Map map1 = Map.of("호랑이","tiger","사자","lion","표범",..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/kKfu5/btq4YkBhn1R/w0lob6ARbqJ2d4yRxoGqa0/img.png)
⊙ 문제 키보드로 입력한 정수 값을 학생의 점수로 사용하며 ArrayList에 저장한다. 입력된 정수 값이 음수면 입력의 끝이다. 점수 중에서 최고 점수부터 최고 점수 -10점 이상은 A, 최고 점수 -10 미만부터 최고 점수 -20점 이상은 B처럼 등급을 배정한 후 출력하는 프로그램을 작성하시오. ⊙ 문제 접근 과정 점수를 한번 이상 받아야 해서 do while문을 사용했다. 이 반복문은 음수를 받기 전까지 반복된다. 그리고 Collections에 있는 max() 함수로 입력받은 score 점수 중에서 가장 높은 값을 max라는 변수에 따로 저장했다. 그다음으로는 등급을 매겨주는 rating 메서드를 따로 만들어주었다. 만든 rating 메서드를 for문안에서 score.size()만큼 돌려주어 원하는..
- Total
- Today
- Yesterday
- C++
- JS
- 운영체제
- 풀이
- py
- 문자열
- 구현
- 정리
- BFS
- 쉽게 배우는 자바 프로그래밍
- 답
- 알고리즘
- Web
- 백준
- CPP
- OS
- 우종정
- java
- 쉽게배우는자바프로그래밍
- 자바
- 정렬
- 그리디
- 쉽게배우는
- 정답
- 해답
- 연습문제
- 프로그래머스
- 파이썬
- 자바스크립트
- Python
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |