728x90

자료구조 9

[Java] HashMap

HashMap 이란? Map 인터페이스를 구현하고 있는 대표적인 자바 클래스. key-value쌍으로 되어있다. Map의 대표적인 특징은 key는 정확히 하나의 value만 가질 수 있다. public class HashMap extends AbstractMap implements Map, Cloneable, Serializable { } HashMap 클래스의 내부는 위와 같은 상속, 구현 관계를 가지고 있다. HashMap은 왜 필요할까? List 형태를 사용하지 않고 HashMap을 사용하는 이유는 바로 성능 때문이다. 만약 List를 사용했다면 검색하는데 있어 시간복잡도는 O(n)으로 나타날것이다. 반면 HashMap은 삽입, 검색 시간에 시간복잡도 O(1)이라는 이점을 가지고 있다. key값의 ..

JAVA 2022.01.26

[Java] 백준 23825번 SASA 모형을 만들어보자

https://www.acmicpc.net/problem/23825 23825번: SASA 모형을 만들어보자 당신은 SASA 연못에서 알파벳 S 모양의 블록 $N$개와 알파벳 A 모양의 블록 $M$개를 건졌다. 태영이는 연못에서 건진 블록을 이용해 학교에 전시할 SASA 모형을 최대한 많이 만들려고 한다. SASA 모형 $ www.acmicpc.net 만들수 있는 SASA모형의 최대값을 구하는 문제. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class BJ23825 { public static void mai..

Algorithm 2022.01.13

[Java] 백준 11948번 과목선택

https://www.acmicpc.net/problem/11948 11948번: 과목선택 JOI는 물리, 화학, 생물, 지구과학, 역사, 지리 총 6 과목의 시험을 봤다. 각 시험의 만점은 100점이다. JOI는 물리, 화학, 생물, 지구과학 4과목 중에서 3 과목을 선택하고 역사, 지리 2 과목 중에 www.acmicpc.net 선택과목을 통해 최대값을 구하는 문제. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Arrays; public class BJ11948 { public static void main(String[] args) throws IO..

Algorithm 2021.12.30

[Java] 백준 5543번 상근날드

https://www.acmicpc.net/problem/5543 5543번: 상근날드 입력은 총 다섯 줄이다. 첫째 줄에는 상덕버거, 둘째 줄에는 중덕버거, 셋째 줄에는 하덕버거의 가격이 주어진다. 넷째 줄에는 콜라의 가격, 다섯째 줄에는 사이다의 가격이 주어진다. 모든 가 www.acmicpc.net import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class BJ5543 { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStre..

Algorithm 2021.12.23

[Design Pattern] 디자인 패턴이란?

디자인 패턴이란? • 소프트웨어를 설계할 때 특정 맥락에서 자주 발생하는 고질적인 문제들이 또 발생했을때 재사용 할 수 있는 해결방법. 이미 만들어져서 잘 되는 것을 처음부터 다시 만들 필요가 없다는 뜻. • 패턴이란? - 각기 다른 소프트웨어 Module이나 기능을 가진 다양한 응용 소프트웨어 시스템들을 개발 할때 서로 간에 공통되는 설계 문제가 존재하며, 이를 처리하는 해결책 사이에도 공통점이 있다. 이러한 유사점을 패턴 이라고 한다. - 패턴은 공통의 언어를 만들어주며, 팀원 사이의 의사 소통을 원활하게 해주는 아주 중요한 역할을 한다. 디자인 패턴의 종류 • GoF 디자인 패턴 - GoF(Gang of Fout)라 불리는 사람들. 에리히 감마(Erich Gamma), 리차드 헬름(Richard H..

[Java] 10430번: 나머지

https://www.acmicpc.net/problem/10430 10430번: 나머지 첫째 줄에 A, B, C가 순서대로 주어진다. (2 ≤ A, B, C ≤ 10000) www.acmicpc.net 입출력으로 나머지 구하는 문제 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); int A = in.nextInt(); int B = in.nextInt(); int C = in.nextInt(); in.close(); System.out.println( (A+B)%C ); System.out.println( (A%C + B%C)%C ..

Algorithm 2021.10.28

[Java] 백준 1550번 16진수

입력한 값(16진수)을 10진수로 변환해 출력하는 문제이다. import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String a = sc.next(); int b = Integer.parseInt(a, 16); System.out.println(b); sc.close(); } } 입출력이기 때문에 간단하게 Scanner를 사용해보았다. 선언까지는 괜찮은데 16진수를 10진수로 변환하는 코드를 몰랐기때문에 검색을 통해 알아내었다. Integer.parseInt(a, 16) 으로 해결 가능.. Integer.parseInt()는 자바 내장 ..

Algorithm 2021.10.27

[Java] 백준 1271번 엄청난 부자2

처음에 문제를 이해하는게 조금 어려웠다. 가지고 있는돈을 특정 금액으로 나눴을때, 얼마나 돈이 남는지를 보는거 같은데, 한국말을 너무 어렵게 쓴것 같다라는 느낌이... 단순하게 입력한 값을 특정 숫자로 나눴을때, 나머지를 묻는거 같아서 Scanner를 적용해보았다. 그런데 int로 접근을 해보니 오류가 나타났다. 입력조건의 범위가 10의 1000제곱인지라 int 의 범위를 넘는거 같았다. 그래서 int가 아닌 문자열 형태로 이루어진 숫자의 범위 BigInteger를 사용해보기로 했다. 나에게는 조금은 어색한 BigInteger. Int와 BigInteger의 차이를 찾아보았는데, int의 경우 범위가 '-2,147,483,648 ~ 2,147,483,647'로 고정적으로 정해져있지만, BigInteger..

Algorithm 2021.10.25

★ 012 데이터 입출력 구현[자료구조]

1. 자료 구조의 정의 - 효율적인 프로그램을 작성할 때 가장 우선적으로 고려해야 할 사항이 저장 공간의 효율성과 실행시간의 신속성 - 자료구조는 프로그램에서 사용하기 위한 자료를 기억장치에 저장하는 방법과 저장된 그룹내에 존재하는 자료간의 관계, 처리 방법 등을 연구 분석하는 것을 뜻함 - 자료구조는 자료의 표현과 그것과 관련된 연산 - 자료구조는 일련의 자료들을 조직하고 구조화하는 것 - 어떠한 자료구조에서도 필요한 모든 연산들을 처리 할 수 있음 - 자료구조에 따라 프로그램 실행시간이 달라짐 2. 자료구조의 분류 1) 선형 구조 - 배열 - 선형 리스트: 연속 리스트, 연결 리스트 - 스택/큐/테크 2) 비선형 구조 - 트리/그래프 3. 선형구조 1) 배열(Array) - 동일한 자료형의 데이터들이..

정보처리기사 2020.06.01
728x90