문자열 데이터를 가지고, 특수한 형태로 가공하는 것은 프로그래밍을 하다 보면 자주 보이는 문제 중 하나입니다. 예를 들자면, 전화번호를 가지고 앞에 국번만 따서 어느 지역인지 알아내거나, 이메일 주소를 통해서, 어느 메일을 쓰는지 알아내거나. 이러한 문제들이 많은데요. 오늘은 그 중, instr을 알아보도록 하겠습니다. C언어에서 strstr을 생각하시면 좋습니다. 다만, 다른점은 strstr은 해당 pattern이 나타나는 처음 address를 리턴한다는 것입니다. 먼저, 1번째 인자는 string, 2번째 인자는 pattern입니다. 즉, string 안에 pattern이 있는지 확인을 합니다. 만약에 있다면, 처음 패턴이 나타난 위치를 리턴합니다. 예를 들어서, 전화번호에서 국번을 찾아야 하는 경우..
코딩 검색 결과
call by value, 즉 값 복사 호출 방식은 반드시 알고 넘어가셔야 하는 개념 중 하나입니다. 이것은 간단하게 말해서, 함수에 값이 전달이 될 때, 값이 copy 되어서 전달이 된다는 겁니다. 즉, 사본이 전달이 되는 셈입니다. 다음 프로그램을 보면서 간단하게 이해를 해 보도록 하겠습니다. 라인 바이 라인으로 끊어서 이해를 해 보도록 하겠습니다. 먼저, 5번째 줄과 6번째 줄에 a가 선언이 되고, b가 선언됩니다. 이 때, a에는 5가, b에는 3이 들어갑니다. 그러면 이 상황입니다. 그 다음에 swap 함수가 호출이 되는데요. 이 때, a와 b의 값을 넘겨줍니다. 이 때, 메모리 상황을 그려보면 위와 같습니다. 다음에, 12번째 줄에 t가 선언이 되었는데요. swap 내에서 선언이 되었기 때문에..
C언어에서 2차원 배열은, 어떻게 메모리 상에 저장이 될까요? 오늘은 이 부분만 집중적으로 보도록 하겠습니다. 먼저, int형 배열인, arr[3][4]를 선언하였습니다. 그러면 메모리 상에 어떻게 생성이 될까요? 일단 행렬로 치면, 3행 4열이라고 볼 수는 있는데요. & 연산자를 쓰면, 현재 주솟값을 볼 수 있는데요. 예제 프로그램을 보면서 이해를 해 보도록 합시다. 먼저, 예제 1을 봅시다. 3행 4열의 배열을 선언하였습니다. 그리고 2중 for loop를 돌면서, 저는 i와 j와 arr[i][j]의 주솟값을 출력하고 있습니다. 그러면 어떻게 결과가 나올까요? 위와 같이 나오는데요. arr[0][0], arr[0][1], arr[0][2], arr[0][3], arr[1][0], ... 순으로 주솟값..
Java에는 for each문이 있습니다. 카운터 변수와 증감식을 사용하지 않는 for문인데요. 배열이나 Collections 등에서 쓸 수 있습니다. 이런 식으로 쓸 수 있습니다. for(타입 변수: 순회할 Collection이나 배열 이름) 더 정확히 말하면, iterable이 가능한 것만 노란색으로 칠한 것에 쓸 수 있습니다. 저는 이 문법을 설명하기 위해서 포스팅을 쓰지 않았습니다. arrayList에 for each 문을 쓰면 어떻게 동작하는지 알아보겠습니다. 먼저, 초기화가 되어야 할 건데요. 우리는 ArrayList를 순회할 때, 인덱스를 줄 수도 있습니다. 하지만, 이터레이터를 줄 수도 있는데요. 여기서, iterator란, 어떠한 요소를 순회하기 위한 반복자 정도로 생각하시면 됩니다. 1..
오늘은 간단하게 mysql에서 유용하게 쓸 수 있는 함수인 if문을 하나 알아보겠습니다. 다음과 같이 작성합니다. if(cond1,eval1,eval2) 이것은 cond1이 참일 때, eval1이 평가되고, 아니라면 eval2가 평가됩니다. 이것을 순서도로 나타내면, 아래 그림과 같습니다. 엑셀의 그 함수와 매우 유사해 보입니다. 어떻게 쓰는 지 간단하게 예제를 보고, 해커랭크에 나온, 심화 문제를 같이 풀어보도록 하겠습니다. 먼저 worker 테이블을 봅시다. 그러면 아래와 같이 되어 있습니다. salary가 NULL 값인 필드가 있는데요. 아차. 제가 신입 사원 분들의 월급을 넣는 것을 깜빡 했지 뭡니까? 'Arie'와 'David'가 신입 사원인데요. 이들은 5000 단위의 월급을 받습니다. 물론 ..
최근댓글