목록프로그래밍 (36)
여행을 개발하다

안녕하세요!! 오늘 포스팅 할 내용은 "StringTokenizer"라는 클래스입니다. 우리는 컴퓨터에 영문자, 한글 등 여러 가지 언어와 형태로 문자를 입력합니다. 그리고 필요에 따라 쉼표(,), 마침표(.), equal(=)을 쓰기도 하구요. 그런데 쉼표, 마침표, equal은 의미 단위를 구분해주는 '구분자'로도 사용됩니다. "StringTokenizer"라는 클래스는 이러한 구분자와 밀접한 연관이 있습니다. 지금부터 "StringTokenizer"이라는 클래스와 세부적으로 함께 쓰일 수 있는 "hasMoreTokens()", "nextToken()" 이라는 메소드에 대해서도 살펴보도록 하겠습니다. 들어가기 전에 토큰(Token)의 개념부터 정리하고 가요! 네이버 사전의 힘을 빌리겠습니다 : ) 토..

안녕하세요 : ) 오늘은 random 클래스를 활용하여 lotto 번호를 추출하는 프로그램을 코딩해보겠습니다. 1. Algorithm 구상 ① 1 ~ 45의 숫자를 저장할 수 있는 lotto_array이라는 이름의 배열을 선언한다. ② lotto_test 배열에 1부터 45의 숫자를 저장한다. ③ random 클래스 자료형의 random 객체를 형성한다. ④ 정수형 변수 r을 선언하고, 1부터 44 이하의 숫자에서 무작위 1개를 선택하여 r에 저장한다. ⑤ lotto_test의 0번째 인수와 r번째 인수를 100000번 섞는다. ⑥ 섞기가 완료되면 0번째부터 6번째 인수를 시간차를 두고 호출한다. 참고로 0번째부터 5번째 인수는 당첨번호이며, 6번째 인수는 보너스 번호이다. 2. Coding ① 1 ~ ..

안녕하세요!! 이번 포스팅에서는 Date, SimpleDateFormate 클래스에 대해 알아보겠습니다. 1. Date - 컴퓨터 시스템의 날짜와 시간을 얻어오는 Class. - 1900년을 기준으로 날짜를 처리한다. - Date Class에서 년, 월, 일, 시, 분, 초를 얻어오려면 get으로 시작하는 메소드를 사용하고, 수정하려면 set으로 시작하는 메소드를 사용하면 된다. - 년을 얻어올 때는 1900을 더해서 얻어와야 하고, 넣어줄 때는 1900을 빼서 넣어줘야 한다. - 월을 얻어올 때는 1을 더해서 얻어와야 하고, 넣어줄 때는 1을 빼서 넣어줘야 한다. Date Class 자료형의 'date'라는 새로운 객체를 생성하여 출력해보았습니다. 그 결과, 컴퓨터 시스템에 있는 시간이 나타나는데요. ..

안녕하세요! 오늘은 String class의 객체로 생성된 String 자료형을 비교하는 알고리즘에 대해 포스팅하겠습니다. 먼저 String이라는 class로 str1과 str2를 선언하고, 동일하게 "AAA"라는 값을 넣어줍니다. 그리고 str1과 str2가 같으면, "같다"라고 출력하고, 다르면 "다르다"라고 출력시켜보겠습니다. 결과 값은 당연히 '같다'가 나옵니다. "AAA"와 "AAA"는 누가 봐도 같기 때문입니다. 하지만 컴퓨터는 사람과 조금 다르게 인식합니다. 왜냐하면 class로 선언된 변수들의 값은, 변수의 값이 생성되어 있는 주소로 비교를 하기 때문입니다. 결국 위의 예제에서 str1과 str2의 "AAA"는 동일한 메모리에 저장된 것이고, 컴퓨터는 메모리의 주소가 같다는 이유로 "같다"..

안녕하세요! 오늘 포스팅할 내용은 2차원 배열의 응용예제, '마방진 만들기'입니다! 거북이 등판의 숫자... 다들 한 번씩은 들어보셨을텐데요. 마방진은 어떤 원리가 적용되는지를 간단하게 살펴보고, C++ 2차원 배열로 채워보도록 하겠습니다. 1. 마방진의 원리 마방진은 n * n의 개의 숫자를 n * n 행렬에 배열한 것인데, 가로, 세로, 대각선의 합이 모두 같다는 특징을 가지고 있습니다. n이 2가 아니면 마방진은 항상 존재하구요. 간단한 예로 5 * 5 마방진은 이렇게 생겼어요. 1부터 n * n까지 모두 채워져 있는데, 아직까진 배열이 어떻게 채워졌는지 감이 오지 않습니다. 하지만 여기에도 규칙이 있으니, 그것은 1이 반드시 첫 번째 행 중간에 와야한다는 점이에요. 그리고 숫자들을 오름차순으로 하..

안녕하세요! 오늘은 2차원 배열의 응용 예제로, 'ㄹ' 자 모양의 배열을 만들어보겠습니다. 제가 그 많고 많은 예제 중에 'ㄹ'자 배열을 선택했냐면요... 지난달 말에 치룬 정보처리기사 실기 시험에서 나왔기 때문이에요. 시험지에서 직접 봐서 그런지, 한 번쯤 직접 구현해보고 싶더라구요!! 마침 2차원 배열 이야기를 하고 있던 중이어서, 타이밍도 좋았습니다! 1. 'ㄹ'자 배열 'ㄹ'자 배열은 다음과 같은 배열을 말하는데요. 자세히 보시면, 숫자가 증가하는 방향이 'ㄹ'자 형태를 띕니다. 2. C++로 'ㄹ'자 배열 구현하기 그럼 C++로 'ㄹ' 자 배열을 구현해보도록 하되, 한 번은 2차원 배열의 정적 할당으로, 한 번은 동적 할당으로 해보겠습니다. 2-1. 정적 할당으로 구현하기 임의로, 5*5의 정적..

안녕하세요! 오늘 포스팅 할 내용은 '2차원 배열의 정적할당'입니다. 지난 시간에는 인수들을 단순 열거하는 1차원 배열에 대해서 이야기했습니다. 오늘은 하나의 배열이 여러 개의 배열을 인수로 갖고 있는, 즉 가로와 세로축이 있는 2차원 배열의 정적 할당은 어떻게 이루어지는지 알아보겠습니다. 1. 2차원 정적 배열의 선언 2차원 배열은 '배열들의 배열'이라고 생각하시면 이해하기 쉽습니다. 즉, 배열의 인수가 '배열'이 되는 것이지요. 1차원 정적 배열을 선언했던 것처럼, 배열의 크기를 적어주기만 하면 됩니다. 다만 행과 열의 크기가 모두 지정되어야 한다는 점을 주의하셔야 합니다. 예를 들어, 5행 5열의 2차원 배열을 선언하기 위해서는 다음과 같이 코딩하면 되겠습니다. '자료형 배열명[행의 크기][열의 크..

안녕하세요!! 오늘 포스팅할 내용은 1차원 배열의 동적할당(Dynamic Allocation)입니다. 지난 포스팅에서는 1차원 배열의 정적 할당에 대해서 알아보았는데요. 정적 할당은 배열의 크기, 즉 메모리의 크기를 미리 정하고 사용하는 것이라고 설명드렸습니다. 하지만 프로그래밍에서는 배열의 크기를 정해서 쓰기보다는, 그 때 그 때 유동적으로 변동에서 사용해야 할 경우가 더 많겠죠? 이럴 때 필요한 것이 배열의 동적 할당입니다. 즉, 정적, 동적 할당의 차이는 프로그램의 시작 전에 메모리를 할당하느냐, 혹은 프로그램을 사용하면서 메모리를 할당하느냐로 정리해볼 수 있겠습니다. 1. 1차원 배열의 동적 할당-1 (new 사용하기) 1차원 배열의 동적 할당은 사용자가 얼마만큼의 메모리를 필요로 하는가에 따라 ..