본문 바로가기

프로그래밍

Java의 HashSet에서 String, Object의 비교 자바에서는 고유한 객체들을 담을 수 있는 Set 자료구조, 정확히는 인터페이스를 제공하고 있다. 이를 구현한 객체는 HashSet, TreeSet, LinkedHashSet 등이 있으며 자주 사용하는 것은 HashSet일 것이다. 그런데 요즘 LeetCode에서 알고리즘 공부를 하다가 HashSet에 String 객체를 넣었을 때 이를 어떻게 비교하는 거지?라는 궁금증이 들었다. 분명 String도 결국엔 객체고 일반적으로 서로 다른 객체끼리는 다르다고 비교되는데 문자열은 어떻게 비교되는 것일까? 문득 HashSet의 contains 메서드를 사용하다가 이와 같은 의문이 들었기 때문에 좀 조사해보았다. 예전에 학교 다닐 때 자바 수업에서도 귀가 아프게 들었던 얘기지만 String 클래스의 equals, .. 더보기
Python3의 range()는 메모리를 많이 차지하는가? Python에서 일정한 규칙의 요소를 참조하기 위해 range()를 사용하는 경우가 자주 있다. >>> for i in range(5): ... print(i) ... 0 1 2 3 4 이는 다음과 같은 코드와 동일한 결과를 가진다. 그렇다면 range(5)는 [0, 1, 2, 3, 4]와 동일하다고 할 수 있을까? >>> for i in [0, 1, 2, 3, 4]: ... print(i) ... 0 1 2 3 4 결론부터 말하면 그렇지 않다. range(start, stop, step) 함수는 단순히 start부터 step씩 증가하며 stop 전까지의 값을 반환하는 함수가 아니고 파이썬에서 정의되어 있는 클래스의 생성자다. 이 생성자 함수는 불변 순서 타입(immutable sequence type).. 더보기
scanf, sscanf, fscanf는 어떤 차이일까? 지난번에 포스팅한 C언어의 출력 함수들에 이어서 이번에는 입력 함수들에 대해 포스팅해 보겠다. 2018/11/12 - [컴퓨터 공학/C,C++] - printf, fprintf, sprintf는 어떤 차이일까? printf, fprintf, sprintf는 어떤 차이일까? C/C++ 에서는 여러가지 출력 방법이 있다. C언어의 printf부터 C++의 cin까지 다양한 함수, 객체와 메소드가 있지만 그 중 서식화된 출력에 유용하게 사용할 수 있었던 여러가지 함수를 소개해 보려 �� haruhiism.tistory.com 사실 이런 함수들은 포맷 스트링 등에서 큰 차이가 없고 입출력의 대상이 어딘가에 따라 차이가 있으므로 한 함수에 대해 잘 기억하고 있다면 다른 함수를 봐도 매개변수 등을 통해 그 용도를 .. 더보기
배열을 이용한 기존 데이터형을 초과하는 크기의 수 출력/연산(피보나치) Java에서 long 자료형은 2^64 의 크기를 가진다. 즉 양수 9,223,372,036,854,775,807부터 -9,223,372,036,854,775,808까지 출력할 수 있다는 얘기가 된다. C, C++에서도 큰 자료형들은 이와 비슷하거나 미치지 못한다. name expresses value* CHAR_BIT Number of bits in a char object (byte) 8 or greater* SCHAR_MIN Minimum value for an object of type signed char -127 (-27+1) or less* SCHAR_MAX Maximum value for an object of type signed char 127 (27-1) or greater* UCHA.. 더보기
printf, fprintf, sprintf는 어떤 차이일까? C/C++ 에서는 여러가지 출력 방법이 있다. C언어의 printf부터 C++의 cin까지 다양한 함수, 객체와 메소드가 있지만 그 중 서식화된 출력에 유용하게 사용할 수 있었던 여러가지 함수를 소개해 보려 한다. 1. printf()int printf(const char *format-string, argument-list);일반적으로 printf()를 사용할 때는 매개변수로 쌍따옴표(")로 싸인 문자열과 문자열에서 %로 지정된 서식 매개변수를 같이 전달하여 출력한다. 또한 줄바꿈, 커서 이동 등을 위해 이스케이프 시퀀스가 사용된다. 이는 간단한 서식을 고려한 출력에 사용되며 가장 많이 접하고 학습 초기에 익숙해져야 할 핵심적인 함수라고 할 수 있다. #include int main() { printf.. 더보기
C, C++ 간단한 예제들(별찍기, 팩토리얼) #include #include using namespace std; int main() { int size, i, j; cout > size; for(i=0;i 더보기