⊙ 문제 HashSet과 TreeSet을 비교하려고 다음 내용을 차례대로 수행하는 프로그램을 작성하시오. 아래 프로그램과 같이 String 타입의 객체로 구성된 HashSet을 생성하고, 동물 이름을 6개 추가시킨 후 HashSet의 원소를 출력한다. HashSet 객체를 TreeSet 타입으로 변환하고 TreeSet의 원소를 출력한다. TreeSet 클래스가 제공하는 first(), last(), lower() 등 메서드를 테스트하는 실행문을 추가한다. public static void main(String[] args) { Set a1 = new HashSet(); a1.addAll(Arrays.asList("독수리","나비","염소","고양이","개미","여우")); System.out.printl..
⊙ 문제 Hashtable을 이용해 4개의 이름과 점수를 저장하시오. 그리고 키보드로 이름을 입력하면 대응하는 점수를 알려 주는 프로그램을 작성하시오. Map map = new Hashtable(); map.put("김열공",80); map.put("최고봉",90); map.put("우등생",95); map.put("나자바",88); ⊙ 문제 접근 과정 Scanner 선언 Map 선언 선언한 Map에 4개의 이름과 점수 저장 get 함수에 입력받은 name을 넣어 점수 출력 ⊙ 문제 풀이 import java.util.Hashtable; import java.util.Map; import java.util.Scanner; public class Main { public static void main(St..
⊙ 문제 다음 프로그램과 실행 결과를 참고해 Person 클래스와 테스트 프로그램을 작성하시오. Person 클래스는 이름과 나이를 포함하며, 이름과 나이를 반환하도록 toString() 메서드를 오버라이딩한다. 객체를 중복 없이 저장하는 HashSet 컬렉션에 Person 객체를 추가한다. HashSet은 원소의 중복 여부를 hashCode()와 equals() 메서드를 이용해 판단한다. 반복자를 사용해 HashSet 컬렉션 원소를 출력한다. Set set = new HashSet(); set.add(new Person("김열공",20)); set.add(new Person("최고봉",56)); set.add(new Person("우등생",16)); set.add(new Person("나자바",35))..
⊙ 문제 ArrayList를 이용해 '갈매기', '나비', '다람쥐', '라마'를 원소로 입력한 후 각 원소에서 문자열 크기가 2인 단어만 출력하는 프로그램을 작성하시오. ⊙ 문제 접근 과정 ArrayList 선언 add함수로 '동물' 추가 for-each문과 if 조건문으로 길이 2인 동물만 출력! ⊙ 문제 풀이 import java.util.ArrayList; public class Main { public static void main(String[] args) { ArrayList animal = new ArrayList(); animal.add("갈매기"); animal.add("나비"); animal.add("다람쥐"); animal.add("라마"); for(String animals : a..
https://www.acmicpc.net/problem/12738 12738번: 가장 긴 증가하는 부분 수열 3 첫째 줄에 수열 A의 크기 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 수열 A를 이루고 있는 Ai가 주어진다. (-1,000,000,000 ≤ Ai ≤ 1,000,000,000) www.acmicpc.net ⊙ 문제 ⊙ 입력 ⊙ 출력 ⊙ 예제 입출력 ⊙ 알고리즘 분류 이분 탐색 가장 긴 증가하는 부분 수열: O(n log n) ⊙ 문제 접근 과정 https://tooo1.tistory.com/131 코드와 문제 접근 과정 동일 ⊙ 문제 풀이 #include #include #include using namespace std; int a; vector arr; int ma..
https://www.acmicpc.net/problem/2741 2741번: N 찍기 자연수 N이 주어졌을 때, 1부터 N까지 한 줄에 하나씩 출력하는 프로그램을 작성하시오. www.acmicpc.net ⊙ 문제 ⊙ 입력 ⊙ 출력 ⊙ 예제 입출력 ⊙ 알고리즘 분류 구현 ⊙ 문제 접근 과정 for문으로 간단하게 구현하면 된다. ⊙ 문제 풀이 #include using namespace std; int main() { int n; cin >>n; for(int i=1;i
www.acmicpc.net/problem/12015 12015번: 가장 긴 증가하는 부분 수열 2 첫째 줄에 수열 A의 크기 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 수열 A를 이루고 있는 Ai가 주어진다. (1 ≤ Ai ≤ 1,000,000) www.acmicpc.net ⊙ 문제 ⊙ 입력 ⊙ 출력 ⊙ 예제 입출력 ⊙ 알고리즘 분류 이분 탐색 가장 긴 증가하는 부분 수열: O(n log n) ⊙ 문제 접근 과정 LIS 문제이다. 시간 복잡도 O(N log N)으로 풀었다. LIS가 무엇인지, O(N^2)의 풀이법을 보고 싶다면 tooo1.tistory.com/121 크기 값을 입력 받는다. 벡터 값을 입력받는데 조건문을 활용하여 입력받는다. O(N log N)으로 풀 수 있게 한..
www.acmicpc.net/problem/11053 11053번: 가장 긴 증가하는 부분 수열 수열 A가 주어졌을 때, 가장 긴 증가하는 부분 수열을 구하는 프로그램을 작성하시오. 예를 들어, 수열 A = {10, 20, 10, 30, 20, 50} 인 경우에 가장 긴 증가하는 부분 수열은 A = {10, 20, 10, 30, 20, 50} 이 www.acmicpc.net ⊙ 문제 ⊙ 입력 ⊙ 출력 ⊙ 예제 입출력 ⊙ 알고리즘 분류 다이나믹 프로그래밍 ⊙ 문제 접근 과정 LIS 문제... 블로그에서 2번째로 다룬다. 생각보다 꽤 중요한 알고리즘으로 느껴졌고 이번 기회에 집중해서 파봤다. 전에 DP 문제를 풀 때 tooo1.tistory.com/121 풀었었는데 이번에도 DP 문제에서 또다시 나왔다. D..
www.acmicpc.net/problem/2512 2512번: 예산 첫째 줄에는 지방의 수를 의미하는 정수 N이 주어진다. N은 3 이상 10,000 이하이다. 다음 줄에는 각 지방의 예산요청을 표현하는 N개의 정수가 빈칸을 사이에 두고 주어진다. 이 값들은 모두 1 이상 www.acmicpc.net ⊙ 문제 ⊙ 입력 ⊙ 출력 ⊙ 예제 입출력 ⊙ 알고리즘 분류 이분 탐색 ⊙ 문제 접근 과정 내가 생각하는 이진 탐색에서 가장 중요한 포인트는 기준이다. index로 기준 잡고 탐색할지, value를 기준으로 탐색할지 문제를 본 뒤 결정해야 한다. 이번 문제는 value를 기준으로 이진 탐색을 해야 한다. 기준을 잡았으면 시작 값과 끝 값을 정해주는 것도 굉장히 중요하다. 이 문제에서 시작 값은 0, 끝 값..
www.acmicpc.net/problem/2110 2110번: 공유기 설치 첫째 줄에 집의 개수 N (2 ≤ N ≤ 200,000)과 공유기의 개수 C (2 ≤ C ≤ N)이 하나 이상의 빈 칸을 사이에 두고 주어진다. 둘째 줄부터 N개의 줄에는 집의 좌표를 나타내는 xi (0 ≤ xi ≤ 1,000,000,000)가 www.acmicpc.net ⊙ 문제 ⊙ 입력 ⊙ 출력 ⊙ 예제 입출력 ⊙ 알고리즘 분류 이분 탐색 매개 변수 탐색 ⊙ 문제 접근 과정 문제 요약: 공유기를 설치할 건데 가능한 멀리 설치하고 싶다. (같은 좌표는 없다) 여러 풀이방법이 있지만 이진 탐색 알고리즘을 사용하여 문제에 접근했다. 이진 탐색을 이용하여 문제를 풀 때 index가 아닌 거리로 두고 풀어야 한다. (거리기준) n(집..
- Total
- Today
- Yesterday
- 알고리즘
- 문자열
- CPP
- 정렬
- C++
- 백준
- 구현
- 파이썬
- 우종정
- 풀이
- 자바스크립트
- 프로그래머스
- 자바
- py
- 정답
- 그리디
- 정리
- OS
- java
- 연습문제
- 답
- 해답
- JS
- 쉽게 배우는 자바 프로그래밍
- 쉽게배우는
- Python
- 쉽게배우는자바프로그래밍
- Web
- BFS
- 운영체제
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |