Java에는 for each문이 있습니다. 카운터 변수와 증감식을 사용하지 않는 for문인데요. 배열이나 Collections 등에서 쓸 수 있습니다. 이런 식으로 쓸 수 있습니다. for(타입 변수: 순회할 Collection이나 배열 이름) 더 정확히 말하면, iterable이 가능한 것만 노란색으로 칠한 것에 쓸 수 있습니다. 저는 이 문법을 설명하기 위해서 포스팅을 쓰지 않았습니다. arrayList에 for each 문을 쓰면 어떻게 동작하는지 알아보겠습니다. 먼저, 초기화가 되어야 할 건데요. 우리는 ArrayList를 순회할 때, 인덱스를 줄 수도 있습니다. 하지만, 이터레이터를 줄 수도 있는데요. 여기서, iterator란, 어떠한 요소를 순회하기 위한 반복자 정도로 생각하시면 됩니다. 1..
전체 글 검색 결과
저번에 비둘기 집의 원리에 대해서 잠깐 언급을 했었습니다. 거기서, hash에 대해서 잠깐 언급을 했었는데요. 오늘은 이 hash를 STL 없이 직접 구현을 해 봅시다. 다음 시간에 String의 hashCode를 직접 구현해 보고, 백준의 듣보잡 문제를 풀어 봅시다. 사실 Hash는 크게 보면 딱 1가지만 주목하면 됩니다. 가 있을 때, 우리는 Key에 대응이 되는 bucket 값을 b(key)라 할 거에요. 예를 들자면, Key 값이 10101010입니다. b(10101010)의 값이 10이라면, 우리는 10번 버킷에 Value를 넣는 것입니다. Key가 정수인 경우, 함수 b는 Key 값에다가 버킷 갯수를 나눈 모듈러를 취하는데요. 예를 들어서, Key의 값이 2058370이고, 버킷 수가 100만..
오늘은 간단하게 mysql에서 유용하게 쓸 수 있는 함수인 if문을 하나 알아보겠습니다. 다음과 같이 작성합니다. if(cond1,eval1,eval2) 이것은 cond1이 참일 때, eval1이 평가되고, 아니라면 eval2가 평가됩니다. 이것을 순서도로 나타내면, 아래 그림과 같습니다. 엑셀의 그 함수와 매우 유사해 보입니다. 어떻게 쓰는 지 간단하게 예제를 보고, 해커랭크에 나온, 심화 문제를 같이 풀어보도록 하겠습니다. 먼저 worker 테이블을 봅시다. 그러면 아래와 같이 되어 있습니다. salary가 NULL 값인 필드가 있는데요. 아차. 제가 신입 사원 분들의 월급을 넣는 것을 깜빡 했지 뭡니까? 'Arie'와 'David'가 신입 사원인데요. 이들은 5000 단위의 월급을 받습니다. 물론 ..
저번 시간에 배열에 대해서 다루었습니다. 이번에는 무엇에 대해 다루어 볼까요? 간단하게 문자열에 대해서 다뤄 보도록 하겠습니다. char형은 문자를 저장합니다. 그러면 그것들을 연속적으로 모아놓은 것은 무엇일까요? 예를 들자면 'c', 'h', 'o'가 모여서, "cho"가 되고, 'd', 'o', 'g'가 모여서 "dog"가 됩니다. 이것을 우리는 문자열이라고 합니다. 그러면, 문자열의 끝은 어떻게 판단할까요? 이게 문제가 될 수 있어요. 배열에서 끝은 어떻게 판단하나요? 사실, 이것은 배열의 크기에, 각 원소의 크기로 나누면 될 겁니다. 이 부분은 크게 어려울 건 없어 보여요. 그런데, 이런 경우를 생각해 봅시다. 이 때에는 출력 결과가 어떻게 나오나요? 저는 main 함수 안에, str 배열을 선언..
그룹 별로, 예를 들어서 카데고리 별로, 아니면 분반 별로 평균을 구하거나, max 값을 구할 수 없을까요? 그룹 별로 집계하기 위해서 group by 절을 씁니다. mysql을 설치하면 sakila 데이터베이스가 있는데요. 이는 영화 대여 시스템에 필요한 테이블들을 구축한 것으로 보입니다. JOIN문도 연습하기 좋은 듯 싶으니, 오늘 예제는 여기서 써 보도록 하겠습니다. 먼저, film_category에서 데이터들을 뽑아봅시다. 그러면 영화의 ID랑, 카데고리의 ID가 있네요. 여기에서 저는, 카데고리 별로 몇 개의 영화를 대여점에서 가지고 있는지를 그룹화 해서 출력하고 싶어요. 그러면 어떻게 해야 할까요? 무엇을 기준으로 group 하는 건가요? 카데고리 별로. category_id인가요? 네. 그러..
최근댓글