분류 전체보기
-
백준 베스트셀러 1302번(Python, Java)Baekjoon 2020. 1. 15. 21:09
https://www.acmicpc.net/problem/1302 1302번: 베스트셀러 첫째 줄에 오늘 하루 동안 팔린 책의 개수 N이 주어진다. 이 값은 1,000보다 작거나 같은 자연수이다. 둘째부터 N개의 줄에 책의 제목이 입력으로 들어온다. 책의 제목의 길이는 50보다 작거나 같고, 알파벳 소문자로만 이루어져 있다. www.acmicpc.net 문제를 보자마자 이건 쉬울 것 같은데? 라고 생각했지만 쉽지 않았던 문제이다. ㅜㅠ 결국 풀지 못했다. 뭔가 알겠는데 파이썬과 자바가 살짝 어색해서 그런가 구현이 쉽게 되지 않았다. 1. 베스트 셀러 with Python 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 books = {} for _ in range(i..
-
백준 1157번 단어공부(Python, Java)Baekjoon 2020. 1. 15. 18:07
https://www.acmicpc.net/problem/1157 1157번: 단어 공부 알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다. www.acmicpc.net 이 문제를 처음 봤을 때 가장 먼저 떠오른 방법은 key, value를 이용하거나 아니면 그냥 리스트 2개를 만들어서 하나는 알파벳 count 용, 알파벳 저장용으로 만들어서 풀면 되겠다는 생각을 했다. 다행히 좀 비효율적인거 같지만 맞긴 맞았다. 1. 단어 공부 with Python 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 name = input() name = ..
-
백준 1152번 단어의 개수(Python, Java)Baekjoon 2020. 1. 15. 16:12
https://www.acmicpc.net/problem/1152 1152번: 단어의 개수 첫 줄에 영어 대소문자와 띄어쓰기로 이루어진 문자열이 주어진다. 이 문자열의 길이는 1,000,000을 넘지 않는다. 단어는 띄어쓰기 한 개로 구분되며, 공백이 연속해서 나오는 경우는 없다. 또한 문자열의 앞과 뒤에는 공백이 있을 수도 있다. www.acmicpc.net 문제를 보자마자 너무 쉽다고 생각을 했고, 단순히 공백문자만 처리를 잘 해주면 될 것 같아서 바로 풀기를 시작했다. 근데 나중에 더 쉬운 방법이 있을까 하고 검색을 해보다 보니 내가 정말 멍청하다는 것을 깨달았다. 1. 단어의 개수 with 파이썬 1 2 3 4 5 6 7 8 9 10 11 12 name = input() l = list(name...
-
백준 1929번 소수구하기(Python, Java)Baekjoon 2020. 1. 15. 16:09
https://www.acmicpc.net/problem/1929 1929번: 소수 구하기 첫째 줄에 자연수 M과 N이 빈 칸을 사이에 두고 주어진다. (1 ≤ M ≤ N ≤ 1,000,000) www.acmicpc.net 문제를 보자마자 바로 풀이가 떠올라고 구현을 시작하였다. 그런데? 소수를 구하는 방법에서 내가 효율적인 풀이방법이 떠오른 것은 아니고 그냥 일반적인 풀이를 떠올렸다. 그런데 시간초과가 뜬다. 뭐 고민을 해보다 구글링을 하였다. 구글링을 해보다 알게 된 사실은 소수판별은 해당 수의 제곱근까지만 나눠보면 된다는 것이다. n, m 사이의 소수구하는 팁 k의 소수를 구하기 위해, 2부터 k/2까지 나눴을때 나누어지는 숫자가 존재하지 않으면 소수이다. k의 약수는 k/2보다 클수가 없으므로! ..
-
백준 10814번 나이순정렬(python)Baekjoon 2020. 1. 14. 16:27
https://www.acmicpc.net/problem/10814 10814번: 나이순 정렬 온라인 저지에 가입한 사람들의 나이와 이름이 가입한 순서대로 주어진다. 이때, 회원들을 나이가 증가하는 순으로, 나이가 같으면 먼저 가입한 사람이 앞에 오는 순서로 정렬하는 프로그램을 작성하시오. www.acmicpc.net 문제를 보자마자 되게 쉬울거 같다고 생각하고 바로 풀기 시작했다. 그냥 나이를 sort() 시키면 끝이네? 라고 생각 했지만 이렇게 문제를 풀면 내가 생각한 테스트케이스를 통과하지 못한다. 그것은 나이가 같은 사람이 입력되었을 때이다. 나이가 같으면 입력 순서대로 나와야하지만 순서대로 나오지 않아서 처음에 틀렸다. 그래서 알고리즘 문제에 익숙하지 않은 나는 그냥 버블정렬 비슷하게 이용해서 ..
-
[JAVA] Array.sort 와 Collections.sort 의 차이Language/Java 2020. 1. 13. 18:36
두개의 차이는 그냥 직관적으로도 정렬을 해주는 역할이고, Array.Sort는 배열을 정렬해주는 것이고 Collections.sort는 클래스의 객체를 정렬해주는 것이라고 생각이 든다. 파이썬에서는 sort가 있어서 너무 편했는데 자바는 없는 줄 알았지만 자바도 있었기 때문에 정리하려 한다. 1. Array.sort (오름차순) Array.sort는 java.util.Arrays에 포함되어 있다. 따라서 import를 시켜서 사용을 해야한다. 사용법에 대해서 알아보자. 위처럼 배열을 만들어서 java.util.Arrays를 import 시켜서 Arrays.sort(참조변수)를 하면 정렬이 된다. 정렬이 되는 기준은 오름차순으로 숫자 > 대문자 > 소문자 > 한글순 으로 정렬이 된다. 1-1) 배열 복사 ..
-
[JAVA] ArrayList와 LinkedList의 차이Language/Java 2020. 1. 12. 20:54
ArrayList vs LinkedList 차이 List 인터페이스의 구현체는 뭐가 있을까요? Stack, Vector, ArrayList, LinkedList가 있습니다. 이 중에서도 대표적인 클래스인 ArrayList, LinkedList 차이에 대해 정리해보겠습니다. ArrayList란? ArrayList는 중복을 허용하고 순서를 유지하며 인덱스로 원소들을 관리한다는 점에서 배열과 상당히 유사합니다. 배열은 크기가 지정되면 고정되지만 ArrayList는 클래스이기 때문에 배열을 추가, 삭제 할 수 있는 메소드들도 존재합니다. 하지만 추가했을 때 배열이 동적으로 늘어나는 것이 아니라 용량이 꽉 찼을 경우 더 큰 용량의 배열을 만들어 옮기는 작업을 하게 됩니다. 내부 코드를 보면서 ArrayList에 ..
-
퀵 정렬(quick sort)Computer Science/Data_Structure 2020. 1. 8. 22:36
퀵 정렬의 개념 퀵 정렬(quick sort)은 평균적으로 매우 빠른 수행 속도를 자랑하는 정렬 방법이다. 퀵정렬도 분할-정복(divide and conqure)에 근거한다. 퀵 정렬은 합병 정렬과 비슷하게 전체 리스트를 2개의 부분 리스트로 분할하고, 각각의 부분 리스트를 다시 퀵정렬하는 전형적인 분할-정복법을 사용한다. 그러나 합병 정렬과는 달리 퀵 정렬은 리스트를 다음과 같은 방법에 의해 비균등하게 분할한다. 먼저 리스트 안에 있는 한 요소를 피벗(pivot)으로 선택한다. 처음에 리스트의 첫 번째 요소인 5를 피벗(pivot)으로 정하였다. 피벗보다 작은 요소들은 모두 피벗의 왼쪽으로 옮겨지고 피벗보다 큰 요소들은 모두 피벗의 오른쪽으로 옮겨진다. 결과적으로 피벗을 중심으로 왼쪽은 피벗보다 작은 ..