[Java] 백준 2075 (N번째 큰 수) 자바 문제 풀이
·
BOJ, Programmers
https://www.acmicpc.net/problem/2075 2075번: N번째 큰 수 첫째 줄에 N(1 ≤ N ≤ 1,500)이 주어진다. 다음 N개의 줄에는 각 줄마다 N개의 수가 주어진다. 표에 적힌 수는 -10억보다 크거나 같고, 10억보다 작거나 같은 정수이다. www.acmicpc.net 알고리즘 분류 자료 구조 정렬 우선순위 큐 풀이 정렬을 해서 풀어야 하는 문제이다. 하지만 메모리 제한이 12MB이므로 2차원 배열을 다 입력받고 정렬을 했다간 메모리 초과가 날 것 같아, 우선 순위 큐로 문제를 접근했다. PriorityQueue를 선언하고 람다식을 사용해 ( (o1, o2) -> o2 - o1 ) 높은 수 부터 정렬했다. PriorityQueue queue = new PriorityQ..
UI 설계
·
나의 공부방
1. UI 설계를 위한 UML (1) UML 1. UML (Unified Modeling Language)의 개념 UML은 객체 지향 소프트웨어 개발 과정에서 산출물을 명세화, 시각화, 문서화할 때 사용되는 모델링 기술과 방법론을 통합해서 만든 표준화된 범용 모델링 언어이다. 2. UML의 특징 -> UML은 방법론을 통합한 것으로, 표준화된 모델링 기법을 제공한다. 특징 설명 가시화 언어 개념 모델 작성 시 오류가 적고 의사소통이 용이 구축 언어 다양한 프로그래밍 언어로 실행 시스템의 예측 가능 UML을 소스코드로 변환하여 구축 가능, 역 변환하여 역공학 기능 명세화 언어 정확한 모델 제시, 완전한 모델 작성 가능 문서화 언어 시스템에 대한 평가 및 의사소통의 문서 3. UML의 구성요소 구성요소 내용..
UI 요구사항 확인
·
나의 공부방
(1) UI (User Interface) 개념 1. UI(사용자 인터페이스)는 넓은 의미에서 사용자와 시스템 사이에서 의사소통할 수 있도록 고안된 물리적, 가상의 매게체이다. 2. 좁은 의미로는 정보 기기나 소프트웨어의 화면 등에서 사람이 접하게 되는 화면이다. (2) UI 유형 유형 특징 설명 CLI (Commnad Line Interface) 정적인 텍스트 기반 인터페이스 명령어를 텍스트로 입력하여 조작하는 사용자 인터페이스 GUI (Graphical User Interface) 그래픽 반응 기반 인터페이스 그래픽 환경을 기반으로 한 마우스나 전자펜을 이용하는 사용자 인터페잇 NUI (Natural User Interface) 직관적 사용자 반응 기반 인터페이스 키보드나 마우스 없이 신체 부위를 이..
[Java] 백준 1312 번 (소수) 문제 풀이
·
BOJ, Programmers
https://www.acmicpc.net/problem/1312 1312번: 소수 피제수(분자) A와 제수(분모) B가 있다. 두 수를 나누었을 때, 소숫점 아래 N번째 자리수를 구하려고 한다. 예를 들어, A=3, B=4, N=1이라면, A÷B=0.75 이므로 출력 값은 7이 된다. www.acmicpc.net 알고리즘 분류 수학 풀이 간단한 연산 문제인줄 알아서 자꾸 뜨는 런타임오류로 인해 한참 해멨다. BigDecimal를 사용해도 10의 10,000,000제곱까지는 표현하기 어렵기 때문이다. 그래서 나눗셈을 구현해 문제를 풀었다. 나눗셈은 a와 b를 나눈 나머지에 10을 곱하는 반복적인 연산이라고 한다. 그리고 우리가 알아야 할 것은 1의자리 즉, 몫을 알아야 하므로 result라는 변수에 계속..
[Java] 백준 1543번 (문서 검색) 자바 문제 풀이
·
BOJ, Programmers
https://www.acmicpc.net/problem/1543 1543번: 문서 검색 세준이는 영어로만 이루어진 어떤 문서를 검색하는 함수를 만들려고 한다. 이 함수는 어떤 단어가 총 몇 번 등장하는지 세려고 한다. 그러나, 세준이의 함수는 중복되어 세는 것은 빼고 세야 한 www.acmicpc.net 알고리즘 분류 문자열 브루트포스 알고리즘 풀이 문자열 (String) 의 함수를 이용해 풀었다. String의 함수 중 contains() : 매개변수가 문자열 중에 포함되어 있으면 true, substring(): 문자열을 자르는 함수 indexOf(): 매개변수로 들어온 문자열이 문자열안에 몇번째에 있는지, 이 세 함수를 이용해서 풀었다. 핵심로직은 다음과 같다. while( document.con..
[Java] 백준 1448 번 (삼각형 만들기)
·
BOJ, Programmers
https://www.acmicpc.net/problem/1448 1448번: 삼각형 만들기 첫째 줄에 빨대의 개수 N이 주어진다. N은 3보다 크거나 같고, 1,000,000보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에 빨대의 길이가 한 줄에 하나씩 주어진다. 빨대의 길이는 1,000,000보다 www.acmicpc.net 알고리즘 분류 수학 그리디 정렬 풀이 그리디 알고리즘과 정렬을 이용해 문제를 풀었다. 먼저 삼각형의 성립 조건을 알아야 한다. 삼각형의 성립 조건: a, b, c(가장 긴 변)이 있을 때 a + b > c 이어야 삼각형이 성립이 된다. 그래서 입력받은 배열을 정렬 후 뒤에서부터 차례로 삼각형이 성립이 되는지 if 조건문을 사용해 구했다. Arrays.sort(arr); fo..
[Java] 백준 2725번 (보이는 점의 개수)
·
BOJ, Programmers
https://www.acmicpc.net/problem/2725 2725번: 보이는 점의 개수 첫째 줄에 테스트 케이스의 개수 C(1
[Java] 백준 1449번 (수리공 항승)
·
BOJ, Programmers
https://www.acmicpc.net/problem/1449 1449번: 수리공 항승 첫째 줄에 물이 새는 곳의 개수 N과 테이프의 길이 L이 주어진다. 둘째 줄에는 물이 새는 곳의 위치가 주어진다. N과 L은 1,000보다 작거나 같은 자연수이고, 물이 새는 곳의 위치는 1,000보다 작거나 www.acmicpc.net 알고리즘 분류 그리디 정렬 풀이 그리디 알고리즘을 사용해 풀었다. 핵심 로직은 이러하다. 먼저 StringTokenizer로 물이 세는 곳을 저장한뒤, 새는 곳이 차례대로 있어야 최소한의 테이프를 쓰게 되니 정렬까지 진행했다. st = new StringTokenizer(br.readLine()); for (int i = 0; i < temp.length; i++) { temp[i..
[Java] 백준 1577 (도로의 개수)
·
BOJ, Programmers
https://www.acmicpc.net/problem/1577 1577번: 도로의 개수 첫째 줄에 도로의 가로 크기 N과 세로 크기 M이 주어진다. N과 M은 100보다 작거나 같은 자연수이고, 둘째 줄에는 공사중인 도로의 개수 K가 주어진다. K는 0보다 크거나 같고, 50보다 작거나 같은 자 www.acmicpc.net 알고리즘 분류 다이나믹 프로그래밍(dp) 풀이 처음에 dfs로 문제를 풀어야 되나 싶었지만 범위를 보고 dp문제임을 깨달았다. 먼저 초기화 작업이다. 가짓수를 저장하는 2차원 배열 dp이다. int형으로는 표현하기 어렵기때문에 long형으로 선언했다. 그리고 세로로 공사중인 곳을 저장하기 위한 horizontal, 가로로 공사중인 곳을 저장하귀 위한 vertical 배열을 선언해줬..