전체 글 보기 54

[JAVA] B2961_도영이가 만든 맛있는 음식

https://www.acmicpc.net/problem/2961 2961번: 도영이가 만든 맛있는 음식 첫째 줄에 재료의 개수 N(1 ≤ N ≤ 10)이 주어진다. 다음 N개 줄에는 그 재료의 신맛과 쓴맛이 공백으로 구분되어 주어진다. 모든 재료를 사용해서 요리를 만들었을 때, 그 요리의 신맛과 쓴맛은 www.acmicpc.net 부분집합 (SubSet) 활용 정답코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Arrays; import java.util.StringTokenizer; public class Main { static int [] s; ..

[알고리즘] 버블정렬 - 백준 2750 수 정렬하기

https://www.acmicpc.net/problem/2750 2750번: 수 정렬하기 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 절댓값이 1,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. www.acmicpc.net 버블정렬을 활용해서 정렬하기 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Arrays; public class Main { //교환해주는 함수 public static void swap(int []arr, int a, int b) { int temp = ..

[JAVA] B2164_카드 2

https://www.acmicpc.net/problem/2164 2164번: 카드2 N장의 카드가 있다. 각각의 카드는 차례로 1부터 N까지의 번호가 붙어 있으며, 1번 카드가 제일 위에, N번 카드가 제일 아래인 상태로 순서대로 카드가 놓여 있다. 이제 다음과 같은 동작을 카드가 www.acmicpc.net import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayDeque; import java.util.Queue; public class B2164_카드2 { public static void main(String[] args) throws Number..

[JAVA] B17608_막대기

17608번: 막대기 아래 그림처럼 높이만 다르고 (같은 높이의 막대기가 있을 수 있음) 모양이 같은 막대기를 일렬로 세운 후, 왼쪽부터 차례로 번호를 붙인다. 각 막대기의 높이는 그림에서 보인 것처럼 순서대로 www.acmicpc.net 🔔 풀이과정 스택을 배우고 있어서 Stack을 활용해서 풀어줬다. cnt = 1 // 처음 오른쪽에 있는 건 카운트를 미리 해줌 h = peek() 제일 오른쪽에 있는 수 for ( N번 반복) pop한 변수를 pop_value에 저장 pop_vaule가 h보다 크면 cnt++ pop_value를 h에 넣는다. // ★1 ★1 하는 이유 : 막대기가 1 2 3 9 5 6 있으면 처음 값 제외하고 9밖에 안보인다. 9보다 큰값이 왼쪽에 있으면 cnt++해주면 된다. im..

[알고리즘] 선형자료구조 (리스트, 스택, 큐)

자료구조 선형 : 배열, 리스트,스택,큐 비선형 : 그래프, 트리 ,힙 (이진트리) 리스트 배열(선형) vs 리스트 (연결리스트) 선형 리스트 : 데이터가 배열처럼 연속하는 메모리 공간에 저장된 자료구조 연결 리스트 : 데이터가 메모리 공간에 연속적으로 저장되어있지 않더라도 노드 포인터를 이용해 연결된 자료구조 연결리스트 조회 삽입 삭제 수정 => 시간복잡도가 다르다 배열: O(1) O(N) O(N) O(N) 리스트:O(N) O(1) O(1) 배열 인덱스를 이용해서 바로 접근 삽입 삭제 비효율 배열의 크기는 수정 불가 간단하다 리스트 인덱스 없어서 (포인터) 조회시 순차적접근: 느리다. 삽입 삭제 빠르다. O(1) 리스트 크기 가변적 포인터 저장할 크기 필요, 더 복잡

[JAVA] B11660_구간합구하기 5

11660번: 구간 합 구하기 5 첫째 줄에 표의 크기 N과 합을 구해야 하는 횟수 M이 주어진다. (1 ≤ N ≤ 1024, 1 ≤ M ≤ 100,000) 둘째 줄부터 N개의 줄에는 표에 채워져 있는 수가 1행부터 차례대로 주어진다. 다음 M개의 줄에는 네 www.acmicpc.net 틀린 코드 (시간초과) import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Arrays; import java.util.StringTokenizer; public class B11660_구간합구하기2 { public static void main(String[] args) thr..

[JAVA] B2018_수들의합5

2018번: 수들의 합 5 어떠한 자연수 N은, 몇 개의 연속된 자연수의 합으로 나타낼 수 있다. 당신은 어떤 자연수 N(1 ≤ N ≤ 10,000,000)에 대해서, 이 N을 몇 개의 연속된 자연수의 합으로 나타내는 가지수를 알고 싶어한 www.acmicpc.net 🔔 투 포인터 사용 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Arrays; import java.util.Scanner; public class B2018_수들의합5 { public static void main(String[] args) throws IOException { Buffer..

[JAVA] Collection API

데이터를 저장하는 방법 1) 변수 : 한가지 타입에 한가지 값만 저장 2) 배열 : 한가지 타입에 여러개의 값을 저장 데이터조작에 불편하다(삽입, 삭제, 수정,검색) 배열은 사이즈가 변경될수 없다!! 🔔 자료구조 : import java.util.* ; 제공한다. : Collection Framework이라고 한다. : 데이터를 저장하는 방식에 따라 이미 필요한 객체나 interface를 만들어서 풍부하게 제공을 한다. 사용자인 우리는 만들어 놓은 객체 또는 interface 를 가져다 사용하면 데이터조작을 손쉽게 할수 있다.(ex) 등록, 수정, 삭제, 검색......) : 제공된 메소드를 최대한 이용하여 작성하면 코딩은 간결하고 하는일 더 많이 할수 있다!!! : 객체만 저장가능하고 다양한 데이터타입..

Practice/JAVA 2023.03.08

[JAVA] equals 메소드

🔶 String class의 equals는 ==과 다른 역할을 한다. (값 비교) String str1 ="java"; String str2 = new String("java"); String str3 ="java"; Strign str4 =new String("java"); => new 없이 생성된 변수 경우 : 값이 같을 때 같은 곳을 가르킨다. ! (주소값이 같다) => new 키워드로 만든거는 무조건 새로 생성 주소값 비교는 == 값 비교 .equals() if(str1 == str3) if(str1.equals(str3)) 둘 다 True 가 나온다. package day05; class EqualsExam2{ String stringObject; public EqualsExam2(String ..

Practice/JAVA 2023.03.08