문제 2차원 평면 위의 점 N개가 주어진다. 좌표를 x좌표가 증가하는 순으로, x좌표가 같으면 y좌표가 증가하는 순서로 정렬한 다음 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i 번 점의 위치 xi와 yi가 주어진다(-100,000 ≤ xi, yi ≤ 100,000). 좌표는 항상 정수이고, 위치가 같은 두 점은 없다. 출력 첫째 줄부터 N개의 줄에 점을 정렬한 결과를 출력한다. 풀이 컬렉션 프레임워크에서 지원하는 정렬 기능을 이용하면 별 고민 없이 풀 수 있다. 주어진 좌표를 이차원 리스트로 받아 주어진 기준에 맞춰 정렬한 후 출력했다. 여기서 기준이란 x좌표를 우선으로, x좌표가 같으면 y좌표를 기준으로 정렬한..
문제 배열을 정렬하는 것은 쉽다. 수가 주어지면, 그 수의 각 자릿수를 내림차순으로 정렬해 보자. 입력 첫째 줄에 정렬하려고 하는 수 N이 주어진다. N은 1,000,000,000보다 작거나 같은 자연수이다. 출력 첫째 줄에 자릿수를 내림차순으로 정렬한 수를 출력한다. 풀이 문제를 잘못 읽었나 싶을 정도로 간단해서 글을 올릴까 말까 고민을 조금 했다. 주어진 입력을 문자열로 받아 char() 메서드를 이용해 아스키코드로 변경, 48씩 빼준 뒤에 박싱, 내림차순 정렬, 이후 다시 문자열로 바꿔 joining() 메서드를 이용해 합친 뒤 출력해 주었다. 사실상 한 줄짜리 문제. import java.util.Comparator; import java.util.Scanner; import java.util.s..
문제 수를 처리하는 것은 통계학에서 상당히 중요한 일이다. 통계학에서 N개의 수를 대표하는 기본 통계값에는 다음과 같은 것들이 있다. 단, N은 홀수라고 가정하자. 산술평균 : N개의 수들의 합을 N으로 나눈 값 중앙값 : N개의 수들을 증가하는 순서로 나열했을 경우 그 중앙에 위치하는 값 최빈값 : N개의 수들 중 가장 많이 나타나는 값 범위 : N개의 수들 중 최댓값과 최솟값의 차이 N개의 수가 주어졌을 때, 네 가지 기본 통계값을 구하는 프로그램을 작성하시오. 입력 첫째 줄에 수의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 단, N은 홀수이다. 그다음 N개의 줄에는 정수들이 주어진다. 입력되는 정수의 절댓값은 4,000을 넘지 않는다. 출력 첫째 줄에는 산술평균을 출력한다. 소수점 이하 첫..
문제 N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오. 입력 첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 10,000보다 작거나 같은 자연수이다. 출력 첫째 줄부터 N개의 줄에 오름차순으로 정렬한 결과를 한 줄에 하나씩 출력한다. 풀이 카운팅 정렬은 대상 배열의 크기 N과 원소중 최댓값 k에 따라 O(N + k)의 시간 복잡도를 가진다. 이는 배열의 크기가 작고, 수의 범위가 좁을수록 무시무시한 속도를 자랑하는데, 이번 문제는 그 카운팅 정렬을 구현해보라는 문제이다. 다른 글에서 구현했으므로, 여기서는 그냥 가져다 쓴다. 2022.12.27 - [Development/Java] - [Algorith..
문제 N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오. 입력 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. 출력 첫째 줄부터 N개의 줄에 오름차순으로 정렬한 결과를 한 줄에 하나씩 출력한다. 풀이 문제 소개에 있듯이, 아슬아슬하게 내장 정렬함수로 정렬이 가능하다. 대신 가능한 시간을 줄이기 위해 BufferedReader/BufferedWriter를 사용해야 했다. import java.io.*; import java.util.ArrayList; import java.util.Collections; import java.uti..
문제 2022 연세대학교 미래캠퍼스 슬기로운 코딩생활에 N명의 학생들이 응시했다. 이들 중 점수가 가장 높은 k명은 상을 받을 것이다. 이 때, 상을 받는 커트라인이 몇 점인지 구하라. 커트라인이란 상을 받는 사람들 중 점수가 가장 가장 낮은 사람의 점수를 말한다. 입력 첫째 줄에는 응시자의 수 N과 상을 받는 사람의 수 k가 공백을 사이에 두고 주어진다. 둘째 줄에는 각 학생의 점수 x가 공백을 사이에 두고 주어진다. 출력 상을 받는 커트라인을 출력하라. 풀이 상을 받는 사람 중 가장 낮은 사람의 점수를 찾는 문제다. 예를 들어 5명 중 2명이 상을 받게 된다면 정렬 수 두 번째로 큰 점수를 찾으면 된다. 스트림을 사용해서 정렬 후, 상을 받을 사람의 수 k 에서 1을 뺀 만큼 ..
문제 어떤 수들이 있을 때, 그 수들을 대표하는 값으로 가장 흔하게 쓰이는 것은 평균이다. 평균은 주어진 모든 수의 합을 수의 개수로 나눈 것이다. 예를 들어 10, 40, 30, 60, 30의 평균은 (10 + 40 + 30 + 60 + 30) / 5 = 170 / 5 = 34가 된다. 평균 이외의 또 다른 대푯값으로 중앙값이라는 것이 있다. 중앙값은 주어진 수를 크기 순서대로 늘어놓았을 때 가장 중앙에 놓인 값이다. 예를 들어 10, 40, 30, 60, 30의 경우, 크기 순서대로 늘어놓으면 10 30 30 40 60 이 되고 따라서 중앙값은 30이 된다. 다섯 개의 자연수가 주어질 때 이들의 평균과 중앙값을 구하는 프로그램을 작성하시오. 입력 첫째 줄부터 다섯 번째 줄까지 한 줄에 하나씩 자연수가..
문제 N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오. 입력 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 절댓값이 1,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. 출력 첫째 줄부터 N개의 줄에 오름차순으로 정렬한 결과를 한 줄에 하나씩 출력한다. 풀이 자바 7 이후의 스트림 sorted() 메서드는 다음과 같이 동작한다. 기본형 자료타입 - 병합 정렬(Merge sort - O(N logN) + 안정 정렬) 그 외 - 팀 정렬(Tim Sort - 병합, 삽입 정렬 하이브리드 + 불안정 정렬) 정렬에 관해서는 따로 글을 파고 있으니까 넘어가고, 여기서 하고 싶은 말은 (당연하게도)성능이 굉장히 빠..
문제 가로, 세로의 크기가 각각 100인 정사각형 모양의 흰색 도화지가 있다. 이 도화지 위에 가로, 세로의 크기가 각각 10인 정사각형 모양의 검은색 색종이를 색종이의 변과 도화지의 변이 평행하도록 붙인다. 이러한 방식으로 색종이를 한 장 또는 여러 장 붙인 후 색종이가 붙은 검은 영역의 넓이를 구하는 프로그램을 작성하시오. 예를 들어 흰색 도화지 위에 세 장의 검은색 색종이를 그림과 같은 모양으로 붙였다면 검은색 영역의 넓이는 260이 된다. 입력 첫째 줄에 색종이의 수가 주어진다. 이어 둘째 줄부터 한 줄에 하나씩 색종이를 붙인 위치가 주어진다. 색종이를 붙인 위치는 두 개의 자연수로 주어지는데 첫 번째 자연수는 색종이의 왼쪽 변과 도화지의 왼쪽 변 사이의 거리이고, 두 번째 자연수는 색종이의 아래..
문제 그림과 같이 9×9 격자판에 쓰인 81개의 자연수 또는 0이 주어질 때, 이들 중 최댓값을 찾고 그 최댓값이 몇 행 몇 열에 위치한 수인지 구하는 프로그램을 작성하시오. 예를 들어, 다음과 같이 81개의 수가 주어지면 이들 중 최댓값은 90이고, 이 값은 5행 7열에 위치한다. 입력 첫째 줄부터 아홉 번째 줄까지 한 줄에 아홉 개씩 수가 주어진다. 주어지는 수는 100보다 작은 자연수 또는 0이다. 출력 첫째 줄에 최댓값을 출력하고, 둘째 줄에 최댓값이 위치한 행 번호와 열 번호를 빈칸을 사이에 두고 차례로 출력한다. 최댓값이 두 개 이상인 경우 그 중 한 곳의 위치를 출력한다. 풀이 2차원 배열에 관련된 문제다. 하지만 크기가 정해진 데다 최대값 중 아무 위치나 출력하라고 했으니 가장 간단하게 첫..
- Total
- Today
- Yesterday
- java
- Python
- 기술면접
- a6000
- 칼이사
- 세계일주
- 남미
- 동적계획법
- 유럽
- 중남미
- 여행
- 야경
- 리스트
- spring
- 맛집
- Backjoon
- 유럽여행
- Algorithm
- 알고리즘
- 세계여행
- 면접 준비
- 자바
- 스프링
- 스트림
- 파이썬
- RX100M5
- 세모
- 백준
- 지지
- BOJ
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 | 31 |