분류 전체보기
-
[Java] equals() 해시코드 비교 및 개념 정리Language/Java 2020. 1. 19. 19:50
어떤 백준 알고리즘 문제를 풀다가 문자열 비교해서 같으면 카운트하는 문제가 있었는데 == 을 써도 도저히 먹지 않았다. 왜 안되는지 이해가 안돼서 검색을 해보니 문자열 비교는 equals 를 해야한다고 했다. 그래서 그 차이점을 정리하려고 한다. 들어가기전에 알아보기 equals메소드와 hashCode() 메소드는 모든 클래스의 최상 클래스인 Object의 메소드라는 것을 알아두자. 2. equals 메소드와 == 연산자 가령 new 연산자를 이용하면 힙 영역에 메모리가 할당된다. 하지만 new를 이용하지 않고 그냥 참조변수에 값을 넣어버리면 상수 풀이라는 곳을 가르키기 때문에 위의 사진처럼 str2와 str3는 같은 곳을 가르키게 된다. 1 2 3 4 5 6 7 8 9 10 11 String str1 ..
-
백준 1181번 단어 정렬(Java)Baekjoon 2020. 1. 18. 05:46
https://www.acmicpc.net/problem/1181 1181번: 단어 정렬 첫째 줄에 단어의 개수 N이 주어진다. (1≤N≤20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문자열의 길이는 50을 넘지 않는다. www.acmicpc.net 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 import java.util.*; public class WordSort{ public static void main(String[] args) { Scanner input = new Scanner(System.in); HashSet set = ne..
-
[Java] Iterable 과 Iterator 이란?Language/Java 2020. 1. 18. 00:02
Collection framework는 뭔가 되게 많고 복잡한 느낌이 들어서 완벽하게 정리가 된 느낌은 아니었다. 가령 Iterator는 어떤 역할인지는 알겠는데 어떤 계층구조를 갖고 있는지 궁금했고, 공부하다보니 Iterable이 있길래 어떤 차이가 있는지도 모르겠어서 정리하려고 한다. 1. Iterable 이란 무엇인가? Collection 인터페이스와 List, Set, Queue 인터페이스의 계층구조는 알고 있었지만, Iterable이 Collection의 상위 인터페이스 인지는 잘 몰랐다. 그래서 인텔리제이에서 내부 구현 코드를 확인해봤다. 1 2 3 4 5 6 7 8 9 10 public interface Collection extends Iterable { // Query Operations..
-
백준 뒤집힌 덧셈 1357번(Python, Java)Baekjoon 2020. 1. 17. 20:59
https://www.acmicpc.net/problem/1357 1357번: 뒤집힌 덧셈 어떤 수 X가 주어졌을 때, X의 모든 자리수가 역순이 된 수를 얻을 수 있다. Rev(X)를 X의 모든 자리수를 역순으로 만드는 함수라고 하자. 예를 들어, X=123일 때, Rev(X) = 321이다. 그리고, X=100일 때, Rev(X) = 1이다. 두 양의 정수 X와 Y가 주어졌을 때, Rev(Rev(X) + Rev(Y))를 구하는 프로그램을 작성하시오 www.acmicpc.net 문제를 처음 봤을 때는 파이썬으로 바로 풀 수 있을 것 같은데, 자바로는 쉽지 않겠다 라고 느끼면 문제를 풀었다. 풀이 : 입력을 문자열로 받은 뒤에 자리수마다 짜른 후에 거꾸로 저장을 하고 다시 int 로 형 변환 해서 덧셈을..
-
[JAVA] next(), nextLine() 의 차이Language/Java 2020. 1. 16. 20:14
나는 지금까지 next()와 nextLine()의 차이는 단순히 한 줄을 전부 입력받고 싶을 때(한 문장을 입력한다던지)는 nextLine()을 사용하고 한 단어씩 입력하고자 할 때는 next()를 사용한다 정도의 가볍게 알고있었다. 하지만 약간의 차이점은 존재했고 주의사항을 확실하게 짚고 넘어가고자 한다. next(), nextLine()는 Scanner 클래스의 메소드이다. 공통점은 둘다 문자열로 반환을 시켜준다는 점이고 차이점은 개행문자를 무시하냐 안하냐의 차이라고 할 수 있다. 메소드 참고 1. 입출력시 주의사항 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 import java.util.Scanner; public class Test { publ..
-
힙 정렬(Heap sort) 란?Computer Science/Data_Structure 2020. 1. 16. 03:10
힙 정렬(Heap sort) 힙 정렬은 최대 힙을 이용하면 가능하다. 예전에 힙(heap) 관련 글을 썼던 내용과 같이 보면 된다. https://devlog-wjdrbs96.tistory.com/43?category=824010 힙(heap) 이란 ? https://gmlwjd9405.github.io/2018/05/10/data-structure-heap.html [자료구조] 힙(heap)이란 - Heee's Development Blog Step by step goes a long way. gmlwjd9405.github.io 그림같은 자료를 가져다 쓴 곳입니.. devlog-wjdrbs96.tistory.com [5, 4, 2, 1, 7, 3, 9, 6, 3, 2] 배열이 존재한다고 가정할 때 데..
-
백준 베스트셀러 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 = ..