안녕하세요. 백준 chogahui05입니다. Vector는 ArrayList와 다르게, 주요 메서드에 synchronized가 붙은 클래스입니다. 여기서 질문 하나 드리겠습니다. 다음 코드는 어떻게 동작할까요? 쓰레드 n개를 생성했다고 해 봅시다. 그러면 이 프로그램은, 항상 비어있는 벡터를 리턴할까요? 혹은, 항상 제대로 동작할까요? vector는 ArrayList와는 다르게 주요 메서드에 동기화 처리가 되어 있습니다. 이는 StringBuilder와 StringBuffer와의 관계와도 같습니다. 전자는 동기화 처리가 되어 있지 않고, 후자는 되어 있다. 정도로 이해하시면 됩니다. 실제로, Worker 클래스의 run 메서드 안에 있는 메서드 3개를 봅시다. isEmpty는 elementCount가 0..
전체 글 검색 결과
mysql은 8버전 부터였나요? rank 함수를 쓸 수 있습니다. 이런 꿀 같은 함수를 외워서 쓰지를 못하다니. 반성해야 겠습니다. 이것은 뒤에 over절이 같이 따라나옵니다. 이 안에 들어갈 내용을 생각해 봅시다. 랭킹을 매길 때나, 정렬을 할 때에는 무엇이 중요한가요? 바로, 기준입니다. 예를 들어서, 인구수 기준으로 내림차순으로 랭킹을 매기고 싶다던지, 점수 내림차순으로 매기고 싶다던지, 그런 것들입니다. 이들은, order by 구문으로 처리할 수 있습니다. world 데이터 베이스에는, city 테이블이 있습니다. 이것을 가지고 놀아보겠습니다. 예를 들어봅시다. 위 쿼리는, city 테이블에서 Population 내림차순으로 랭크를 매기라는 의미입니다. 그러면 정확하게 랭킹값이 Populatio..
입력을 신뢰하면 안 된다. 현실 세계에서는 알고리즘 문제와 같이 제한에 맞춰서 입력이 들어오지 않는다. 이 말은 많이 들어보셨으리라 생각이 듭니다. c언어에서 많은 string 함수, 예를 들어서 strcpy, strcat 같은 것들이 이런 문제를 가지고 있다고 하는데, 무엇일까요? 문자를 5개 저장할 수 있는 배열을 선언했습니다. 문자열은 NULL 문자가 끝에 들어갑니다. 그러면, 길이가 4인 문자열까지는 들어갈 수 있습니다. 예를 들어 "cho"는 길이가 3인 문자열입니다. 그러므로, 들어갈 수 있습니다. 그런데, 이런 경우라면 어떨까요? "chogahui를 넣는다. 길이가 8입니다. 그런데, gets나, strcpy, strcat에 들어가는 정보는 string 배열의 시작 주소일 뿐입니다. 길이 값..
Java에는 가비지 콜렉터가 있습니다. 이것이 어떻게 동작하는지는 추후에 쓸 기회가 있을 듯 싶습니다. 여기에 등장하는 용어들이 무엇인지에 대해서 간단하게 짚고 넘어가 보도록 하겠습니다. Reference 클래스는 사실, gc를 설명하기 위해 굉장히 중요한 키워드 중 하나이지만, 여기에서는 다루지 않겠습니다. 먼저 Reachability가 뭘까요? 도달이 가능하다는 것입니다. 그러면 Reachable Object는 도달 가능한 객체 정도로 해석하면 될 겁니다. 어디에서부터 도달 가능한 것일까요? Root로부터 도달 가능한 Obj들을 Reachable하다고 합니다. 이 Root에 대한 설명은 링크를 보시면 나와 있는데요. 1번째 문장에서, accessible from outside heap 이라는 문구가 ..
파일에는 소유권이 있습니다. 어느 그룹이 소유하고 있는지, 그리고 누가 소유하고 있는지. 이 둘을 바꾸는 명령어가 chown입니다. .c 파일들은 chogahui05가 소유하고 있고, chogahui05 그룹이 소유하고 있습니다. 권한은 -rw-rw-r--입니다. 그러면, 05 그룹이거나, 05인 경우에는, Read와 Write가 모두 가능하고, 그렇지 않으면 읽기만 가능하다는 이야기입니다. 현재 user는 chogahui06입니다. groups를 쳐 보면, chogahui06만 나오는데요. 06은 05도 아니고, 05 그룹에 속해있지도 않기 때문에 others에 속합니다. 그러면, strcpy.c를 열면 어떻게 될까요? 읽기 전용으로 열릴 거에요. 당연한 이야기입니다. Write 권한이 없기 때문입니다..
최근댓글