분류 전체보기318 백준/2108 통계학 통계학 시간 제한메모리 제한제출정답맞힌 사람정답 비율 2 초 256 MB 118444 25940 20924 25.389% 문제 수를 처리하는 것은 통계학에서 상당히 중요한 일이다. 통계학에서 N개의 수를 대표하는 기본 통계값에는 다음과 같은 것들이 있다. 단, N은 홀수라고 가정하자. 산술평균 : N개의 수들의 합을 N으로 나눈 값 중앙값 : N개의 수들을 증가하는 순서로 나열했을 경우 그 중앙에 위치하는 값 최빈값 : N개의 수들 중 가장 많이 나타나는 값 범위 : N개의 수들 중 최댓값과 최솟값의 차이 N개의 수가 주어졌을 때, 네 가지 기본 통계값을 구하는 프로그램을 작성하시오. 입력 첫째 줄에 수의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 단, N은 홀수이다. 그 다음 N개의 줄에는 정.. 자바/알고리즘 문제 풀이 2022. 12. 4. 백준/10989 수 정렬하기 3 수 정렬하기 3 시간 제한메모리 제한제출정답맞힌 사람정답 비율 5 초 (하단 참고) 8 MB (하단 참고) 203593 47199 35651 23.477% 문제 N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오. 입력 첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 10,000보다 작거나 같은 자연수이다. 출력 첫째 줄부터 N개의 줄에 오름차순으로 정렬한 결과를 한 줄에 하나씩 출력한다. 예제 입력 1 복사 10 5 2 3 1 4 2 3 5 1 7 예제 출력 1 복사 1 1 2 2 3 3 4 5 5 7 풀이 1. 실패 -> 수 정렬하기 2에서 썼던코드가 통과할거같아서 시도해보았지만 메모리초과로 실패하였다.. 자바/알고리즘 문제 풀이 2022. 12. 3. 백준/2751 수 정렬하기 2 수 정렬하기 2 시간 제한메모리 제한제출정답맞힌 사람정답 비율 2 초 256 MB 226499 65082 45252 30.451% 문제 N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오. 입력 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. 출력 첫째 줄부터 N개의 줄에 오름차순으로 정렬한 결과를 한 줄에 하나씩 출력한다. 예제 입력 1 복사 5 5 4 3 2 1 예제 출력 1 복사 1 2 3 4 5 풀이 오름차순으로 정렬하는 간단한 문제같지만 주어지는 수의 개수의 최대값이 백만이나 된다. O(n^2)의 시간복잡도를 가지는 코드라.. 자바/알고리즘 문제 풀이 2022. 12. 3. 백준/25305 커트라인 커트라인 시간 제한메모리 제한제출정답맞힌 사람정답 비율 1 초 1024 MB 11008 7124 6605 66.329% 문제 2022 연세대학교 미래캠퍼스 슬기로운 코딩생활에 N$N$명의 학생들이 응시했다. 이들 중 점수가 가장 높은 k$k$명은 상을 받을 것이다. 이 때, 상을 받는 커트라인이 몇 점인지 구하라. 커트라인이란 상을 받는 사람들 중 점수가 가장 가장 낮은 사람의 점수를 말한다. 입력 첫째 줄에는 응시자의 수 N$N$과 상을 받는 사람의 수 k$k$가 공백을 사이에 두고 주어진다. 둘째 줄에는 각 학생의 점수 x$x$가 공백을 사이에 두고 주어진다. 출력 상을 받는 커트라인을 출력하라. 제한 1≤N≤1000$1 ≤ N ≤ 1\,000$ 1≤k≤N$1 ≤ k ≤ N$ .. 자바/알고리즘 문제 풀이 2022. 12. 3. [Java] Split 메소드 문자열 자르기 String[] split(String regex) split함수는 입력받은 정규표현식 또는 특정문자를 기준으로 문자열을 나누어 배열에 저장하여 리턴한다. 정규표현식 개념 -> https://hbase.tistory.com/160 String temp = "010-1234-5789-1111"; String[] result = temp.split("-"); for (String currentString : result) { bw.write(currentString+"\n"); } 문자열을 "-"를 기준으로 나누고 나눈 문자열들을 배열에 넣어서 리턴해준다. 문자열배열을 출력해봤을때 저장된 값들은 다음과 같다. String[] split(String regex,int limit) 기준 문자말고 받을 수 있는 .. 자바/++ 2022. 12. 3. 백준/2587 대표값2 대표값2 시간 제한메모리 제한제출정답맞힌 사람정답 비율 1 초 128 MB 15445 9827 9082 64.673% 문제 어떤 수들이 있을 때, 그 수들을 대표하는 값으로 가장 흔하게 쓰이는 것은 평균이다. 평균은 주어진 모든 수의 합을 수의 개수로 나눈 것이다. 예를 들어 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이 된다. 다섯 개의 자연수가 주.. 자바/알고리즘 문제 풀이 2022. 12. 3. 백준/2750 수 정렬하기 문제 N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오. 입력 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 절댓값이 1,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. 출력 첫째 줄부터 N개의 줄에 오름차순으로 정렬한 결과를 한 줄에 하나씩 출력한다. 예제 입력 1 복사 5 5 2 3 4 1 예제 출력 1 복사 1 2 3 4 5 풀이 중복없는 숫자배열을 받은 후 정렬메소드를 이용하여 정렬해서 출력해준다. public class Main { static BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); static Buf.. 자바/알고리즘 문제 풀이 2022. 12. 3. [Java] ArrayList, LinkedList ArrayList ArrayList는 배열을 기반에 두고있다. 장점 : 인덱스를 통한 데이터의 삽입,삭제,조회가 편하다. 단점 : 데이터의 추가,삭제가 느리다. get / set ArrayList는 조회 또는 값설정할때 시간복잡도는 O(1) 이다. 배열의 인덱스를 통해 접근하는 방식이므로 속도가 빠르다. ArrayList.add(data) List numbers = new ArrayList(); numbers.add(5); numbers.add(2); 맨뒤에 데이터가 추가된다. 시간복잡도는 O(1)이다. ArrayList.add(index,data) numbers.add(0, 11); 원하는 인덱스에 데이터를 삽입한다. 특정 인덱스에 데이터를 삽입하게되면 그 뒤에 요소들은 하나씩 뒤로 이동시켜주는 작업이.. 자바/자료구조 2022. 12. 3. Collections.sort() 와 Arrays.sort() 시간복잡도, 사용법 Collections.sort() 시간복잡도 평균 : O(NlogN) 최악 : O(NlogN) 내부 알고리즘 : Timsort(삽입+병합 정렬) Arrays.sort() 시간복잡도 평균 : O(NlogN) 최악 : O(N^2) 내부 알고리즘 : DualPivotQuicksort Collections.sort() 사용법 public static void main(String[] args)throws IOException { List numbers = new ArrayList(); numbers.add(5); numbers.add(2); numbers.add(1); numbers.add(4); Collections.sort(numbers); bw.write(numbers.toString()); bw.flus.. 자바/++ 2022. 12. 3. [Java] BufferedReader, BufferedWriter Scanner보다 빠른 입출력 BufferedReader, BufferedWriter 버퍼를 통해서 입출력을 전달해준다. BufferedReader, BufferedWriter가 Scanner보다 더 효율이 좋은 이유는 버퍼를 이용해서 그렇다고한다. 누를때마다 정보를 이동시키는것보다는 중간에 메모리 버퍼를 둬서 데이터를 묶어서 전송시키는것이 효율적이고 빠르다고 한다. 흙을 퍼 나를때 삽으로 한번뜨고 옮기는것보다는 수레에 한번에 담아서 옮기는것이 더 효율적이고 빠른것처럼. IOException BufferedReader나 BufferedWriter의 메소드를 사용하려면 사용할곳에서 try catch를 두르거나 해당 클래스의 throws IOException처리를 해줘야한다. public static voi.. 자바/++ 2022. 12. 3. 4)회원 도메인 설계,회원 도메인 개발 이전에 들은 요구사항에 대해 듣고 개발자가 설계해야하는 부분이다. 기획자가 원하는 회원관련 요구사항 설계할때 플로우를 생각해본다. 1. 클라이언트가 회원서비스를 호출한다. (회원서비스는 회원가입,회원조회 기능을 가지고 있다) 2. 회원저장소 인터페이스를 만든다 ( 어떤 저장소로 바꿔끼울수 있게끔) 도메인 레벨의 큰 그림 (기획자도 볼수 있는 그림) 각각 클라이언트 역할 ,회원서비스 역할, 회원 저장소 역할이고 메모리회원저장소,DB 회원 저장소, 외부 시스템 연동 회원저장소는 구현이다. 구현중 하나를 회원저장소 역할에 꼽아쓰면된다. 아직 회원저장소에 대해 기획이 안나왔지만 개발을 해야한다. 그래서 메모리 회원 저장소를 만들어서 개발을 시작한다. 메모리를 이용한 저장소는 로컬에서 개발할때도 쓰이고, 테스트할.. 인프런/스프링핵심원리(기본) 2022. 12. 1. 3)예제프로젝트 시작, 비즈니스 요구사항과 설계 예제만들기 프로젝트의 시작은 https://start.spring.io/ 에서 시작한다. 어떤 프로젝트인지(gradle,maven) 스프링부트 어떤버전을 사용할것인지 등 초기설정을 하고 설정된 프로젝트파일을 받을 수 있다. 이번프로젝트는 Gradle 프로젝트이고, 다른설정 및 Dependencies 추가없이 해당 설정을 Generate 해준다. 받은 압축파일을 풀고 인텔리제이에서 file -> new -> project from exisiting sources로 압축푼 폴더를 선택해준다. Build.gradle build.gradle을 보면 스프링부트 버전과, 자바버전을 확인가능하고 spring initialize에서 dependencies추가한게 없기때문에 디펜던시를 보면 기본적인 starter와 테스.. 인프런/스프링핵심원리(기본) 2022. 12. 1. 이전 1 ··· 20 21 22 23 24 25 26 27 다음