<?xml version="1.0" encoding="utf-8" ?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
<title>즐거운 코딩 생활 ( funyphp ) &amp;gt; community &amp;gt; java</title>
<link>https://www.funyphp.com/bbs/board.php?bo_table=java</link>
<language>ko</language>
<description>java (2022-05-26 10:34:12)</description>

<item>
<title>[ java ] Java Code Convention (자바 코드 규칙 - 네이밍 - 패키지명, 클래스명, 변수명)</title>
<link>https://www.funyphp.com/bbs/board.php?bo_table=java&amp;amp;wr_id=128</link>
<description><![CDATA[<p>Java Code Convention (자바 코드 규칙 - 네이밍 - 패키지명, 클래스명, 변수명)</p>
<p>- 가독성 - 다른 개발자도 소스코드를 처음 보더라도 더 빠르고 완변하게 이해할 수 있게 코드규칙을 지키자.</p>
<p>- 다른 소스코드와 잘 어울리는 패키지</p>
<p> </p>
<p><span style="font-size:16px;"><b>1. 이름(Naming)</b></span></p>
<p> <b>1-1. 식별자에는 영문(A, B..., a, b ...) / 숫자(1,2,3...) / 언더스코어( _ )만 허용</b></p>
<p>   - 변수명, 클래스명, 메소드명 등에는 영어와 숫자만 사용</p>
<p>   - 상수에는 단어 사이의 구분을 위해 언더스코어( _ )를 사용</p>
<p><br /></p>
<p> <b>1.2. <span style="color:#ff0000;">한국어 발음 그대로의 영문 표기를 피하자</span></b></p>
<p>   - 되도록이면 고유 명사를 찾아서 사용하자</p>
<p>   - 좋은예) totalPrice( 총 금액 )</p>
<p>   - 나쁜예) chongGumek( 총 금액 ) </p>
<p> </p>
<p><b> 1-3. 대문자로 표기할 약어 명시</b></p>
<p>   - 클래스명, 변수명에 쓰일 단어 중 모든 글자를 대문자로 표기할 약어의 목록을 프로젝트별로 명시적으로 정의한다.</p>
<p>   - 약어의 대소문자 표기는 JDK의 클래스나 라이브러리들 사이에서도 일관된 규칙이 없다. 그러나 단일 프로젝트에서 규칙이 명확하지 않으면 같은 단어의 조합을 다른 이름으로 표기할 수 있어서 혼동하기가 쉽다.</p>
<p>   - 그래서 기본 정책으로는 약어의 중간단어를 소문자로 표기하고 프로젝트별로 모두 대문자로 표기할 약어의 목록을 명시하는 방식이 가독성을 높이고 규칙을 단순화하는게 좋다.</p>
<p>
      - 좋은 예) HTTP + API + URL의 클래스 이름의 경우</p>
<p>                 대문자로 표기할 약어의 목록을 정의하지 않는 경우: HttpApiUrl</p>
<p>                 API만 대문자로 표기할 약어의 목록에 있을 경우: HttpAPIUrl</p>
<p>                 HTTP, API, URL이 대문자로 표기할 약어의 목록에 있을 경우: HTTPAPIURL</p>
<p> </p>
<p><b> 1-4. <span style="color:#ff0000;">패키지 이름은 소문자로 구성</span></b></p>
<p>   - 패키지 이름은 소문자를 사용하여 작성한다.</p>
<p>   - 단어별 구문을 위해 언더스코어(_)나 대문자를 섞지 않는다. </p>
<p>    - 좋은 예) package com.java.examoncetime</p>
<p>    - 나쁜 예) package com.java.examOncetime</p>
<p>                  package com.java.exam_once_time</p>
<p> </p>
<p><b> 1-5. <span style="color:#ff0000;">클래스/인터페이스 이름에 파스칼표기법적용</span></b></p>
<p>   - 클래스 이름은 단어의 첫 글자를 대문자로 시작하는 파스칼표기법(Pascal case)을 사용한다.</p>
<p>   - 좋은 예) public class ExamOnceTime</p>
<p>                 public class AccessToken</p>
<p>   - 나쁜 예) public class examoncetime</p>
<p>                 public class Accesstoken</p>
<p> </p>
<p><b> 1-6. <span style="color:#ff0000;">클</span><span style="color:#ff0000;">래스 이름에 명사/명사절 사용</span></b></p>
<p><br /></p>
<p><b> 1-7. <span style="color:#ff0000;">인터페이스 이름에 명사/명사절 또는 형용사/형용사 사용</span></b></p>
<p>   - 좋은 예) public interface RowMapper {</p>
<p>                public interface AutoClosable {</p>
<p> </p>
<p><b> 1-8. <span style="color:#ff0000;">테스트 클래스는 'Test'로 끝내자</span></b></p>
<p>   - JUnit 등으로 작성한 테스트 코드를 담은 클래스는 'Test'을 마지막에 붙인다.</p>
<p>   - 좋은 예) public class WatcherTest {</p>
<p> </p>
<p><b> 1-9. <span style="color:#ff0000;">메소드 이름에 카멜표기법 적용</span></b></p>
<p>   - 메소드의 이름에는 첫 번째 단어를 소문자로 작성하고, 이어지는 단어의 첫 글자를 대문자로 작성하는 소문자 카멜표기법(Lower camel case)를 사용</p>
<p>   - 테스트 클래스의 메소드 이름에서는 언더스코어( _ )를 허용</p>
<p><br /></p>
<p><b> 1-10. 메소드 이름은 동사/전치사로 시작</b></p>
<p>   - 메소드명은 기본적으로는 동사로 시작한다. 다른 타입으로 전환하는 메소드나 빌더 패턴을 구현한 클래스의 메소드에는 전치사를 쓸 수 있다.</p>
<p>   - 좋은 예) 동사 사용: renderHtml()</p>
<p>                전환메소드의 전치사: toString()</p>
<p>                Builder 패턴 적용한 클래스의 메소드의 전치사: withUserId(String id)</p>
<p>                = 반환값이 고정되어있는 메소드명</p>
<p>                 1) is~ : boolean 타입 리턴</p>
<p>                 2) has~ : boolean 타입 리턴</p>
<p>                 3) contain~ : boolean 타입 리턴</p>
<p>                 4) validate~ : 리턴값 없음</p>
<p> </p>
<p><b> 1-11. <span style="color:#ff0000;">상수는 대문자와 언더스코어로 구성</span></b></p>
<p>   - 상태를 가지지 않는 자료형이면서 static final로 선언되어 있는 필드일 때를 상수로 간주한다.</p>
<p>   - 상수 이름은 대문자로 작성하며, 복합어는 언더스코어( _ )를 사용하여 구분한다.</p>
<p>   - 좋은 예) public final int UNLIMITED = -1;</p>
<p>                 public final String POSTAL_CODE_EXPRESSION = "POST";</p>
<p> </p>
<p><b> 1-12. 변수에 소문자 카멜표기법 적용</b></p>
<p>   - 상수가 아닌 클래스의 멤버변수/지역변수/메소드 파라미터에는 소문자 카멜표기법(Lower camel case)을 사용한다.</p>
<p>   - 좋은 예) private boolean authorized;</p>
<p>                 private int accessToken;</p>
<p>   - 나쁜 예) private boolean Authorized;</p>
<p>                 private int AccessToken;</p>
<p> </p>
<p><b> 1-13. 임시 변수 외에는 1 글자 이름 사용 금지</b></p>
<p>   - 메소드 블럭 범위 이상의 생명 주기를 가지는 변수에는 1글자로 된 이름을 쓰지 않는다.</p>
<p>   - 반복문의 인덱스나 람다 표현식의 파라미터 등 짧은 범위의 임시 변수에는 관례적으로 1글자 변수명을 사용할 수 있다.</p>
<p>   - 좋은 예) HtmlParser parser = new HtmlParser();</p>
<p>   - 나쁜 예) HtmlParser p = new HtmlParser();</p>
<p> </p>
<p><span style="font-size:16px;"><b>2. 선언(Declarations)</b></span></p>
<p><b> 2-1. 소스파일당 1개의 탑레벨 클래스 담기</b></p>
<p>   - 탑레벨 클래스는 소스파일에 1개만 존재해야 한다.</p>
<p>   - 굳이 한 파일 안에 선언해야 한다면 내부 클래스로 선언한다.</p>
<p><br /></p>
<p><b> 2-2. static import에만 와일드 카드 허용</b></p>
<p>   - 클래스를 import할 때는 와일드카드(*)없이 모든 클래스명을 다 쓴다.</p>
<p>   - static import에서는 와일드카드를 허용한다.</p>
<p><br /></p>
<p><b> 2-3. 제한자 선언의 순서</b></p>
<p>   - 클래스/메소드/멤버변수의 제한자는 Java Language Specification에서 명시한 아래의 순서로 쓴다.</p>
<p>   - public protected private abstract static final transient volatile synchronized native strictfp</p>
<p><br /></p>
<p><b> 2-4. 애너테이션 선언 후 새줄 사용</b></p>
<p>   - 클래스, 인터페이스, 메소드, 생성자에 붙는 애너테이션은 선언 후 새줄을 사용한다. 이 위치에서도 파라미터가 없는 애너테이션 1개는 같은 줄에 선언할 수 있다.</p>
<p>   - 좋은 예) @RequestMapping("/guests")</p>
<p>                 public void findGuests() {}</p>
<p>   - 좋은 예) @Override public void destroy() {}</p>
<p> </p>
<p><b> 2-5. 한 줄에 한 문장</b></p>
<p>   - 문장이 끝나는 ; 뒤에는 새 줄을 삽입한다.</p>
<p><br /></p>
<p><b> 2-6. 하나의 선언문에는 하나의 변수만</b></p>
<p>   - 변수 선언문은 한 문장에서 하나의 변수만을 다룬다.</p>
<p><br /></p>
<p><b> 2-7. 배열에서 대괄호는 타입 뒤에 선언</b></p>
<p>   - 배열 선언에 오는 대괄호([])는 타입의 바로 뒤에 붙인다. 변수명 뒤에 붙이지 않는다.</p>
<p><br /></p>
<p><b> 2-8. 'long'형 값의 마지막에 'L' 붙이기</b></p>
<p>   - long형의 숫자에는 마지막에 대문자'L'을 붙인다.</p>
<p><br /></p>
<p><b> 2-9. 특수 문자의 전용 선언 방식을 활용</b></p>
<p>   - \b, \f, \n, \r, \t, \, \\와 같이 특별히 정의된 선언 방식이 있는 특수 문자가 있다. 이런 문자들은 숫자를 이용한 \008이나 \u008와 같은 숫자를 넣은 선언보다 전용 방식을 활용한다.</p>
<p>   - 좋은 예) System.out.println("---\n---");</p>
<p>   - 나쁜 예) System.out.println("---\012---");</p>
<p> </p>
<p><b><span style="font-size:16px;">3. 들여쓰기(Indentation)</span></b></p>
<p> <b>3-1. 하드탭 사용</b></p>
<p>   - 탭(tab) 문자를 사용하여 들여쓴다. (탭 대신 스페이스를 사용금지)</p>
<p><br /></p>
<p><b> 3-2. 탭의 크기는 4개의 스페이스</b></p>
<p>   - 1개의 탭의 크기는 스페이스 4개와 같도록 에디터에서 설정한다.</p>
<p><br /></p>
<p> <b>3-3. 블록 들여쓰기</b></p>
<p>   - 클래스, 메소드, 제어문 등의 코드 블록이 생길 때마다 1단계를 더 들여쓴다.</p>
<p>   - 이클립스 단축키( Ctl + Shift + F )</p>
<p><br /></p>
<p><span style="font-size:16px;"><b>4. 중괄호(Braces)</b></span></p>
<p> <b>4-1. K&amp;R 스타일로 중괄호 선언</b></p>
<p>   - 클래스 선언, 메소드 선언, 조건/반복문 등의 코드 블록을 감싸는 중괄호에 적용되는 규칙이다. </p>
<p>     (  중괄호 선언은 K&amp;R 스타일(Kernighan and Ritchie style)을 따른다. )</p>
<p>   - 줄의 마지막에서 시작 중괄호 '{'를 쓰고 열고 새 줄을 삽입한다. 블록을 마친 후에는 새 줄 삽입 후 중괄호를 닫는다.</p>
<p><br /></p>
<p><b> 4-2. 닫는 중괄호와 같은 줄에 else, catch, finally, while 선언</b></p>
<p>   - 아래의 키워드는 닫는 중괄호 (})와 같은 줄에 쓴다.</p>
<p>     1) else</p>
<p>     2) catch, finally</p>
<p>     3) do-while 문에서의 while</p>
<p> </p>
<p> <b>4-3. 빈 블록에 새 줄 없이 중괄호 닫기 허용</b></p>
<p>   - 내용이 없는 블록을 선언할 때에는 같은 줄에서 중괄호 닫는 것을 허용한다.</p>
<p><br /></p>
<p> <b>4-4. 조건/반복문에는 중괄호 필수 사용</b></p>
<p>   - 조건, 반복문이 한 줄로 끝나더라도 중괄호를 활용한다.</p>
<p><br /></p>
<p><span style="font-size:16px;"><b>5. 줄바꿈(Line-wrapping)</b></span></p>
<p> <b>5-1. 최대 줄 너비는 120</b></p>
<p>   - 최대 줄 사용 너비는 120자까지 가능하다.</p>
<p><br /></p>
<p> <b>5-2. package, import 선언문은 한 줄로</b></p>
<p>   - package, ìmport 선언문 중간에서는 줄을 바꾸지 않는다. 최대 줄 수를 초과하더라도 한 줄로 쓴다.</p>
<p><br /></p>
<p> <b>5-3. 줄바꿈 후 추가 들여쓰기</b></p>
<p>   - 줄바꿈 이후 이어지는 줄에서는 최초 시작한 줄에서보다 적어도 1단계의 들여쓰기를 더 추가한다.</p>
<p>   - 좋은 예) AbstractAggregateRootTest.AggregateRoot proxyAggregateRoot =</p>
<p>                    em.getReference(AbstractAggregateRootTest.AggregateRoot.class, aggregateRoot.getId());</p>
<p> </p>
<p> <b>5-4. 줄바꿈 허용 위치</b></p>
<p>   - 가독성을 위해 줄을 바꾸는 위치는 다음 중 하나로 한다.</p>
<p>     1) extend 선언 후</p>
<p>     2) implements 선언 후</p>
<p>     3) throws 선언 후</p>
<p>     4) 시작 소괄호(()) 선언 후</p>
<p>     5) 콤마(,) 후</p>
<p>     6) 마침표(.) 전</p>
<p>     7) 연산자 전</p>
<ul>
   <li>+, -, *, /, %</li>
   <li>==, !=, &gt;=, &gt;, &lt;=, &lt;, &amp;&amp;, ||</li>
   <li>&amp;, |, ^, &gt;&gt;&gt;, &gt;&gt;, &lt;&lt;, ?</li>
   <li>instanceof</li>
   </ul>
<p><b><span style="font-size:16px;">6. 빈줄(Blank lines)</span></b></p>
<p> <b>6-1. package 선언 후 빈 줄 삽입</b></p>
<p>   - package를 선언한 후 빈 줄을 삽입한다.</p>
<p><br /></p>
<p><b> 6-2. import 선언의 순서와 빈 줄 삽입</b></p>
<p>   - import 구절은 아래와 같은 순서로 그룹을 묶어서 선언한다.</p>
<p>    1) static imports</p>
<p>    2) java.</p>
<p>    3) javax.</p>
<p>    4) org.</p>
<p>    5) net.</p>
<p>    6) 8~10을 제외한 com.*</p>
<p>    7) 1~6, 8~10을 제외한 패키지에 있는 클래스</p>
<p>    8) com.nhncorp.</p>
<p>    9) com.navrcorp.</p>
<p>    10) com.naver.</p>
<p>   - 각 그룹 사이에는 빈 줄을 삽입한다.</p>
<p>   - 각 그룹 내에서는 알파벳 순으로 정렬한다.</p>
<p>   - 좋은 예) import java.util.Date;</p>
<p>                 import java.util.List;</p>
<p> </p>
<p>                 import javax.naming.NamingException;</p>
<p><br /></p>
<p>                 import org.apache.commons.logging.Log;</p>
<p>                 import org.apache.commons.logging.LogFactory;</p>
<p>                 import org.springframework.util.Assert;</p>
<p><br /></p>
<p>                 import com.google.common.base.Function;</p>
<p><br /></p>
<p> <b>6-3. 메소드 사이에 빈 줄 삽입</b></p>
<p>   - 메소드의 선언이 끝난 후 메소드 선언이 시작되기 전에 빈 줄을 삽입한다.</p>
<p><br /></p>
<p><b><span style="font-size:16px;">7. 공백(Whitespace)</span></b></p>
<p> <b>7-1. 공백으로 줄을 끝내지 않음</b></p>
<p>   - 빈 줄을 포함하여 모든 줄은 탭이나 공백으로 끝내지 않는다.</p>
<p><br /></p>
<p> <b>7-2. 대괄호 뒤에 공백 삽입</b></p>
<p>   - 닫는 대괄호(]) 뒤에 ';'으로 문장이 끝나지 않고 다른 선언이 올 경우 공백을 삽입한다.</p>
<p><br /></p>
<p> <b>7-3. 중괄호의 시작 전, 종료 후에 공백 삽입</b></p>
<p>   - 여는 중괄호({) 앞에는 공백을 삽입한다.</p>
<p>   - 닫는 중괄호(}) 뒤에 else, catch 등의 키워드가 있을 경우 중괄호와 키워드 사이에 공백을 삽입한다.</p>
<p><br /></p>
<p> <b>7-4. 제어문 키워드와 여는 소괄호 사이에 공백 삽입</b></p>
<p>   - if, for, while, catch, synchronized, switch와 같은 제어문 키워드의 뒤에 소괄호(())를 선언하는 경우, 시작 소괄호 앞에 공백을 삽입한다.</p>
<p><br /></p>
<p> <b>7-5. 식별자와 여는 소괄호 사이에 공백 미삽입</b></p>
<p>   - 식별자와 여는 소괄호(() 사이에는 공백을 삽입하지 않는다. 생성자와 메소드의 선언, 호출, 애너테이션 선언 뒤에 쓰이는 소괄호가 그에 해당한다.</p>
<p>   - 좋은 예) public StringProcessor() {}<span style="white-space:pre;"></span>// 생성자</p>
<p>                 @Cached("local")</p>
<p>                 public String removeEndingDot(String original) {</p>
<p>                     assertNotNull(original);</p>
<p>                      ...</p>
<p>                 }</p>
<p>   - 나쁜 예) public StringProcessor () {}<span style="white-space:pre;"></span>// 생성자</p>
<p>                @Cached ("local")</p>
<p>                public String removeEndingDot (String original) {</p>
<p>                    assertNotNull (original);      </p>
<p>                    ...</p>
<p>                }</p>
<p> </p>
<p> <b>7-6. 타입 캐스팅에 쓰이는 소괄호 내부 공백 미삽입</b></p>
<p>   - 타입캐스팅을 위해 선언한 소괄호의 내부에는 공백을 삽입하지 않는다.</p>
<p><br /></p>
<p><b> 7-7. 제네릭스 산괄호의 공백 규칙</b></p>
<p>   - 제네릭스(Generics) 선언에 쓰이는 산괄호(&lt;&gt;) 주위의 공백은 다음과 같이 처리한다.</p>
<p>    1) 제네릭스 메소드 선언일 때만 &lt; 앞에 공백을 삽입한다.</p>
<p>    2) &lt; 뒤에 공백을 삽입하지 않는다.</p>
<p>    3) &gt; 앞에 공백을 삽입하지 않는다.</p>
<p>    4) 아래의 경우를 제외하고는 &gt; 뒤에 공백을 삽입한다.</p>
<p>    5) 메소드 레퍼런스가 바로 이어질 때</p>
<p>    6) 여는 소괄호(()가 바로 이어질 때</p>
<p>    7) 메소드 이름이 바로 이어질 때</p>
<p>   - 좋은 예) </p>
<p>    public static &lt;A extends Annotation&gt; A find(AnnotatedElement elem, Class&lt;A&gt; type) { // 제네릭스 메서드 선언</p>
<p>        List&lt;Integer&gt; l1 = new ArrayList&lt;&gt;(); // '(' 가 바로 이어질때</p>
<p>        List&lt;String&gt; l2 = ImmutableList.Builder&lt;String&gt;::new; // 메서드 레퍼런스가 바로 이어질 때</p>
<p>        int diff = Util.&lt;Integer, String&gt;compare(l1, l2); // 메서드 이름이 바로 이어질 때</p>
<p>    }</p>
<p> </p>
<p> <b>7-8. 콤마/구분자 세미콜론의 뒤에만 공백 삽입</b></p>
<p>   - 콤마(,), 반복문(while, for)의 구분자로 쓰이는 세미콜론(;) 뒤에만 공백을 삽입한다.</p>
<p><br /></p>
<p><b>7-9. 콜론의 앞 뒤에 공백 삽입</b></p>
<p>   - 반복문과 삼항연산자에서는 콜론(:)의 앞 뒤에는 공백을 삽입한다. 라벨 선언 뒤에는 아무런 문자열이 없으므로 앞에만 공백을 삽입한다.</p>
<p>   - 좋은 예)</p>
<p>     for (Customer customer : visitedCustomers) {</p>
<p>         AccessPattern pattern = isAbnormal(accessLog) ? AccessPattern.ABUSE : AccessPattern.NORMAL;</p>
<p>         int grade = evaluate(customer, pattern);</p>
<p>         switch (grade) {</p>
<p>            case GOLD : sendSms(customer);</p>
<p>            case SILVER : sendEmail(customer);</p>
<p>            default : inreasePoint(customer)</p>
<p>         }</p>
<p>    }</p>
<p> </p>
<p><b> 7-10. 이항/삼항 연산자의 앞 뒤에 공백 삽입</b></p>
<p>   - 이항/삼항 연산자의 앞 뒤에는 공백을 삽입한다.</p>
<p>   - 좋은 예) if (pattern == Access.ABNORMAL) {</p>
<p>                     return 0;</p>
<p>                 }</p>
<p>                 finalScore += weight * rawScore - absentCount;</p>
<p>                 if (finalScore &gt; MAX_LIMIT) {</p>
<p>                     return MAX_LIMIT;</p>
<p>                 }</p>
<p> </p>
<p><b> 7-11. 단항 연산자와 연산 대상 사이에 공백을 미삽입</b></p>
<p>   - 단항 연산자와 연산 대상의 사이에는 공백을 삽입하지 않는다.</p>
<p>    1) 전위 연산자 : 연산자 뒤에 공백을 삽입하지 않는다.</p>
<ul>
   <li>전위 증가/감소 연산자 : ++, --</li>
   <li>부호로 쓰이는 +, -</li>
   <li>NOT 연산자 : ~, !</li>
   </ul>
<p>     2) 후위 연산자 : 연산자 앞에 공백을 삽입하지 않는다.</p>
<ul>
   <li>후위 증가/감가 연산자 : ++, --</li>
   </ul>
<p> <b>7-12. 주석문 기호 전후의 공백 삽입</b></p>
<p>   - 주석의 전후에는 아래와 같이 공백을 삽입한다.</p>
<p>
   </p><ul>
      <li>명령문과 같은 줄에 주석을 붙일 때 // 앞</li>
      <li>주석 시작 기호 // 뒤</li>
      <li>주석 시작 기호 /* 뒤</li>
      <li>블록 주석을 한 줄로 작성시 종료 기호 */ 앞</li>
      </ul>
   ]]></description>
<dc:creator>웹지기</dc:creator>
<dc:date>2022-05-26T10:34:12+09:00</dc:date>
</item>


<item>
<title>[ java ] 주석 처리</title>
<link>https://www.funyphp.com/bbs/board.php?bo_table=java&amp;amp;wr_id=127</link>
<description><![CDATA[<p>한줄 주석 //</p>
<p>여러줄 한번에 주석 /* 주석내용 */</p>]]></description>
<dc:creator>웹지기</dc:creator>
<dc:date>2021-01-15T09:04:37+09:00</dc:date>
</item>


<item>
<title>[ java ] JavaFestival13 - Question6 - 합병 - 두개배열 병합정렬</title>
<link>https://www.funyphp.com/bbs/board.php?bo_table=java&amp;amp;wr_id=126</link>
<description><![CDATA[<p>JavaFestival13</p>
<p> - Question6 - 두개의 배열 A와B를 합병 후 오름차순으로 정렬하여 반환하는 mergeArray메소드를 완성하시오.</p>
<p> </p>
<div style="padding:10px 10px 10px 18px;border-width:1px 1px 1px 4px;border-style:solid;border-color:#f42857;font-size:13px;line-height:19px;font-family:'courier 10 pitch', Courier, monospace;vertical-align:baseline;background-color:#051e30;color:#ffffff;">
   <p>import java.util.Arrays;</p>
   <p><br /></p>
   <p>public class Question6 {</p>
   <p>    public static void main(String[] args) {</p>
   <p>        int[] A = { 1, 3, 5, 7, 9, 11, 13, 15, 17, 19 };</p>
   <p>        int[] B = { 2, 4, 5, 8, 10, 12, 14, 16, 18, 20 };</p>
   <p>        int[] C = new int[A.length + B.length];</p>
   <p><br /></p>
   <p>        int[] Merge = mergeArray(A, B);</p>
   <p>        System.out.print("Merge : "+Arrays.toString(Merge));</p>
   <p>    }</p>
   <p><br /></p>
   <p>    public static int[] mergeArray(int[] a, int[] b) {</p>
   <p>        int pa = 0;</p>
   <p>        int pb = 0;</p>
   <p>        int pc = 0;</p>
   <p>        int na = a.length;</p>
   <p>        int nb = b.length;</p>
   <p>        int[] c = new int[a.length + b.length];</p>
   <p><br /></p>
   <p>        while (pa &lt; na &amp;&amp; pb &lt; nb) { // 작은 값</p>
   <p>            c[pc++] = (a[pa] &lt;= b[pb]) ? a[pa++] : b[pb++];</p>
   <p>        }</p>
   <p>        while (pa &lt; na) { // a 요소 복사</p>
   <p>            c[pc++] = a[pa++];</p>
   <p>        }</p>
   <p><br /></p>
   <p>        while (pb &lt; nb) {</p>
   <p>            c[pc++] = b[pb++];</p>
   <p>        }</p>
   <p>        return c;</p>
   <p>    }</p>
   <p>}</p>
   </div>
<p> </p>
<p>결과</p>
<div style="padding:10px 10px 10px 18px;border-width:1px 1px 1px 4px;border-style:solid;border-color:#f42857;font-size:13px;line-height:19px;font-family:'courier 10 pitch', Courier, monospace;vertical-align:baseline;background-color:#051e30;color:#ffffff;">
   <p>Merge : [1, 2, 3, 4, 5, 5, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20] </p>
   </div>
<p> </p>]]></description>
<dc:creator>웹지기</dc:creator>
<dc:date>2021-01-07T03:30:57+09:00</dc:date>
</item>


<item>
<title>[ java ] JavaFestival13 - Question5 - 하샤드 수</title>
<link>https://www.funyphp.com/bbs/board.php?bo_table=java&amp;amp;wr_id=125</link>
<description><![CDATA[<p>JavaFestival13</p>
<p> - Question5 - 하샤드 수</p>
<p>양의 정수 x가 하샤드 수이려면 x의 자릿수의 합으로 x가 나누어져야 합니다.</p>
<p>예를들어 18의 자릿수 합은 1+8=9이고, 18은 9로 나누어 떨어지므로 18은 하샤드 수 입니다.</p>
<p>isHarshad메소드는 양의 정수 n을 매개변수로 입력받습니다.</p>
<p>이 n이 하샤드수인지 아닌지 판단하는 함수를 완성하세요.</p>
<p>예를들어 n이 10, 12, 18이면 True를 리턴 11, 13이면 False를 리턴하면 됩니다.</p>
<p><br /></p>
<div style="padding:10px 10px 10px 18px;border-width:1px 1px 1px 4px;border-style:solid;border-color:#f42857;font-size:13px;line-height:19px;font-family:'courier 10 pitch', Courier, monospace;vertical-align:baseline;background-color:#051e30;color:#ffffff;">
   <p>public class Question5 {</p>
   <p>    public static void main(String[] args) {</p>
   <p>        System.out.println(isHarshad(18));</p>
   <p>        System.out.println(isHarshad(154));</p>
   <p>    }</p>
   <p><br /></p>
   <p>    private static boolean isHarshad(int num) {</p>
   <p>        int sum = 0;</p>
   <p>        int num2 = num;</p>
   <p>      </p>
   <p>        while (num2 &gt;= 1) {</p>
   <p>            sum += num2 % 10;</p>
   <p>            num2 /= 10;</p>
   <p>        }</p>
   <p> </p>
   <p>        if (num%sum == 0) {</p>
   <p>            return true;</p>
   <p>        } else {</p>
   <p>            return false;</p>
   <p>        }</p>
   <p>    }</p>
   <p>}</p>
   </div>
<p> </p>
<p>결과</p>
<div style="padding:10px 10px 10px 18px;border-width:1px 1px 1px 4px;border-style:solid;border-color:#f42857;font-size:13px;line-height:19px;font-family:'courier 10 pitch', Courier, monospace;vertical-align:baseline;background-color:#051e30;color:#ffffff;">
   <p>true</p>
   <p>false</p>
   </div>
<p><br /></p>
<p> </p>]]></description>
<dc:creator>웹지기</dc:creator>
<dc:date>2021-01-07T02:53:09+09:00</dc:date>
</item>


<item>
<title>[ java ] JavaFestival13 - Question4 - 1보다 큰 정수(N)를 입력하여 N!값을 구하시오.( 팩토리얼 구하기 )</title>
<link>https://www.funyphp.com/bbs/board.php?bo_table=java&amp;amp;wr_id=124</link>
<description><![CDATA[<p>JavaFestival13</p>
<p> - Question4 - 1보다 큰 정수(N)를 입력하여 N!값을 구하시오.</p>
<p>* 팩토리얼이란 N의 수보다 작거나 같은 모든 양의 정수의 곱</p>
<p>ex) 3! = 1 x 2 x 3 =&gt; 6</p>
<p> </p>
<div style="padding:10px 10px 10px 18px;border-width:1px 1px 1px 4px;border-style:solid;border-color:#f42857;font-size:13px;line-height:19px;font-family:'courier 10 pitch', Courier, monospace;vertical-align:baseline;background-color:#051e30;color:#ffffff;">
   <p>import java.util.Scanner;</p>
   <p><br /></p>
   <p>public class Question4 {</p>
   <p>    public static void main(String[] args) {</p>
   <p>        Scanner sc = new Scanner(System.in);</p>
   <p>        </p>
   <p>        System.out.print("입력 : ");</p>
   <p>        int num = sc.nextInt();</p>
   <p>        </p>
   <p>        int fac = 1;</p>
   <p>        for (int i=1; i&lt;=num; i++) {</p>
   <p>            fac *= i; </p>
   <p>        }</p>
   <p>        System.out.print("출력 : " + fac);</p>
   <p>    }</p>
   <p>}</p>
   </div>
<p> </p>
<p>결과</p>
<div style="padding:10px 10px 10px 18px;border-width:1px 1px 1px 4px;border-style:solid;border-color:#f42857;font-size:13px;line-height:19px;font-family:'courier 10 pitch', Courier, monospace;vertical-align:baseline;background-color:#051e30;color:#ffffff;">
   <p>입력 : 10</p>
   <p>출력 : 3628800</p>
   </div>
<p> </p>]]></description>
<dc:creator>웹지기</dc:creator>
<dc:date>2021-01-07T02:46:28+09:00</dc:date>
</item>


<item>
<title>[ java ] JavaFestival13 - Question3 - 그림과 같이 대시(‘_’)문자로 구성된 형태의 숫자를  주어진 숫자와 같이 출력</title>
<link>https://www.funyphp.com/bbs/board.php?bo_table=java&amp;amp;wr_id=123</link>
<description><![CDATA[<p>JavaFestival13</p>
<p> - Question3 - 그림과 같이 대시(‘_’)문자로 구성된 형태의 숫자를  주어진 숫자와 같이 출력하고 싶을때 사용되게 되는  대시의 개수를 출력하는 프로그램을 작성하라</p>
<p> </p>
<div style="padding:10px 10px 10px 18px;border-width:1px 1px 1px 4px;border-style:solid;border-color:#f42857;font-size:13px;line-height:19px;font-family:'courier 10 pitch', Courier, monospace;vertical-align:baseline;background-color:#051e30;color:#ffffff;">
   <p> import java.util.Scanner;</p>
   <p><br /></p>
   <p>public class Question3 {</p>
   <p>    public static void main(String[] args) {</p>
   <p>        Scanner sc = new Scanner(System.in);</p>
   <p>        System.out.print("첫자리 0을 제외한 숫자를 입력해주세요 &gt;&gt;");</p>
   <p>        int num = sc.nextInt();</p>
   <p>        System.out.println(toNum(num));</p>
   <p>    }</p>
   <p>    </p>
   <p>    public static int toNum(int num) {</p>
   <p>        int result = 0;</p>
   <p>        //숫자별 - 개수</p>
   <p>        int[] nums = {6, 2, 5, 5, 4, 5, 6, 3, 7, 6};</p>
   <p>        while(num&gt;0) {</p>
   <p>            int num2 = num%10; //10의자리에서 남은숫자 구하기</p>
   <p>            num /= 10; // 맨뒷자리부터 10의 단위로 숫자 삭제하기</p>
   <p>            result+=nums[num2]; // 배열과 10의자리 수를 비교해서 - 구해서 합하기</p>
   <p>        }</p>
   <p>        return result;</p>
   <p>    }</p>
   <p>}</p>
   </div>
<p> </p>
<p>결과</p>
<div style="padding:10px 10px 10px 18px;border-width:1px 1px 1px 4px;border-style:solid;border-color:#f42857;font-size:13px;line-height:19px;font-family:'courier 10 pitch', Courier, monospace;vertical-align:baseline;background-color:#051e30;color:#ffffff;">
   <p>첫자리 0을 제외한 숫자를 입력해주세요 &gt;&gt; 123456789</p>
   <p>49</p>
   <p> </p>
   <p>첫자리 0을 제외한 숫자를 입력해주세요 &gt;&gt; 3392</p>
   <p>21</p>
   <p> </p>
   <p>첫자리 0을 제외한 숫자를 입력해주세요 &gt;&gt; 2018</p>
   <p>20</p>
   </div>
<p> </p>]]></description>
<dc:creator>웹지기</dc:creator>
<dc:date>2021-01-07T02:39:03+09:00</dc:date>
</item>


<item>
<title>[ java ] JavaFestival13 - Question2 - 가운데 글자 구하기</title>
<link>https://www.funyphp.com/bbs/board.php?bo_table=java&amp;amp;wr_id=122</link>
<description><![CDATA[<p>가운데 글자 구하기</p>
<p><br /></p>
<p>getMiddle메소드는 하나의 단어를 입력 받습니다.</p>
<p>단어를 입력 받아서 가운데 글자를 반환하도록 getMiddle메소드를 만들어 보세요.</p>
<p>단어의 길이가 짝수일경우 가운데 두글자를 반환하면 됩니다.</p>
<p>예를들어 입력받은 단어가 power이라면 w를 반환하면 되고,</p>
<p>입력받은 단어가 test라면 es를 반환하면 됩니다.</p>
<p><br /></p>
<div style="padding:10px 10px 10px 18px;border-width:1px 1px 1px 4px;border-style:solid;border-color:#f42857;font-size:13px;line-height:19px;font-family:'courier 10 pitch', Courier, monospace;vertical-align:baseline;background-color:#051e30;color:#ffffff;">
   <p>public class Question2 {</p>
   <p>    public static void main(String[] args) {</p>
   <p>        System.out.println(getMiddle("power"));</p>
   <p>        System.out.println(getMiddle("test"));</p>
   <p>    }</p>
   <p><br /></p>
   <p>    private static String getMiddle(String word) {</p>
   <p>        int length = word.length();</p>
   <p>        int index = length / 2;</p>
   <p>        String result = (length%2==0) ? word.substring(index-1, index+1) : word.substring(index, index+1);</p>
   <p>        return result;</p>
   <p>    }</p>
   <p>}</p>
   </div>
<p> </p>
<p>결과</p>
<div style="padding:10px 10px 10px 18px;border-width:1px 1px 1px 4px;border-style:solid;border-color:#f42857;font-size:13px;line-height:19px;font-family:'courier 10 pitch', Courier, monospace;vertical-align:baseline;background-color:#051e30;color:#ffffff;">
   <p>w</p>
   <p>es</p>
   </div>
<p><br /></p>]]></description>
<dc:creator>웹지기</dc:creator>
<dc:date>2021-01-07T01:16:37+09:00</dc:date>
</item>


<item>
<title>[ java ] JavaFestival13 - Question1 - 다음과 같은 프로그램을 작성하시오.  N과 X를 입력 받는다.  N개의 정수를 입력 받는다.  N개의 숫자 중 X보다 작은 수만 출력 한다.</title>
<link>https://www.funyphp.com/bbs/board.php?bo_table=java&amp;amp;wr_id=121</link>
<description><![CDATA[<p>JavaFestival13</p>
<p> - Question1 - 다음과 같은 프로그램을 작성하시오.  N과 X를 입력 받는다.  N개의 정수를 입력 받는다.  N개의 숫자 중 X보다 작은 수만 출력 한다.</p>
<p> </p>
<div style="padding:10px 10px 10px 18px;border-width:1px 1px 1px 4px;border-style:solid;border-color:#f42857;font-size:13px;line-height:19px;font-family:'courier 10 pitch', Courier, monospace;vertical-align:baseline;background-color:#051e30;color:#ffffff;">
   <p>import java.util.Scanner;</p>
   <p><br /></p>
   <p>public class Question1 {</p>
   <p>    public static void main(String[] args) {</p>
   <p>        Scanner sc = new Scanner(System.in);</p>
   <p>        </p>
   <p>        System.out.print("N 입력 : ");</p>
   <p>        int count = sc.nextInt();</p>
   <p>        System.out.print("X 입력 : ");</p>
   <p>        int num = sc.nextInt();</p>
   <p>        </p>
   <p>        int su[] = new int[count];</p>
   <p>        for(int i=0; i&lt;count; i++) {</p>
   <p>            System.out.print((i+1)+"번째 정수 입력 &gt;&gt; ");</p>
   <p>            int j = sc.nextInt();</p>
   <p>            </p>
   <p>            if(j &lt; num) {</p>
   <p>                su[i] = j;</p>
   <p>            } else {</p>
   <p>                su[i] = 0;</p>
   <p>            }</p>
   <p>        }</p>
   <p>        </p>
   <p>        System.out.print("결과 &gt;&gt; ");</p>
   <p>        for(int i=0; i&lt;su.length; i++) {</p>
   <p>            if(su[i] &gt; 0) {</p>
   <p>                System.out.print(su[i] + " ");</p>
   <p>            }</p>
   <p>        }</p>
   <p>    }</p>
   <p>}</p>
   </div>
<p> </p>
<p>결과</p>
<div style="padding:10px 10px 10px 18px;border-width:1px 1px 1px 4px;border-style:solid;border-color:#f42857;font-size:13px;line-height:19px;font-family:'courier 10 pitch', Courier, monospace;vertical-align:baseline;background-color:#051e30;color:#ffffff;">
   <p>N 입력 : 10</p>
   <p>X 입력 : 5</p>
   <p>1번째 정수 입력 &gt;&gt; 1</p>
   <p>2번째 정수 입력 &gt;&gt; 10</p>
   <p>3번째 정수 입력 &gt;&gt; 4</p>
   <p>4번째 정수 입력 &gt;&gt; 9</p>
   <p>5번째 정수 입력 &gt;&gt; 2</p>
   <p>6번째 정수 입력 &gt;&gt; 3</p>
   <p>7번째 정수 입력 &gt;&gt; 8</p>
   <p>8번째 정수 입력 &gt;&gt; 5</p>
   <p>9번째 정수 입력 &gt;&gt; 7</p>
   <p>10번째 정수 입력 &gt;&gt; 6</p>
   <p>결과 &gt;&gt; 1 4 2 3 </p>
   </div>
<p> </p>]]></description>
<dc:creator>웹지기</dc:creator>
<dc:date>2021-01-07T01:10:49+09:00</dc:date>
</item>


<item>
<title>[ java ] JavaFestival12 - Question3 - 1-2+3-4+…+99-100 를 계산하여  답을 출력하시오.</title>
<link>https://www.funyphp.com/bbs/board.php?bo_table=java&amp;amp;wr_id=120</link>
<description><![CDATA[<p>JavaFestival12</p>
<p> - Question3 - 1-2+3-4+…+99-100 를 계산하여  답을 출력하시오.</p>
<p><br /></p>
<div style="padding:10px 10px 10px 18px;border-width:1px 1px 1px 4px;border-style:solid;border-color:#f42857;font-size:13px;line-height:19px;font-family:'courier 10 pitch', Courier, monospace;vertical-align:baseline;background-color:#051e30;color:#ffffff;">
   <p>public class Question3 {</p>
   <p>    public static void main(String[] args) {</p>
   <p>        int sum = 0;</p>
   <p>       </p>
   <p>        for (int i = 0; i &lt;= 100; i++) {</p>
   <p>            if(i%2 != 0){</p>
   <p>                sum += i;</p>
   <p>            }else {</p>
   <p>                sum -= i;</p>
   <p>            }</p>
   <p>        }</p>
   <p>        System.out.println("Result : "+ sum);</p>
   <p>    }</p>
   <p>}</p>
   </div>
<p> </p>
<p>결과</p>
<div style="padding:10px 10px 10px 18px;border-width:1px 1px 1px 4px;border-style:solid;border-color:#f42857;font-size:13px;line-height:19px;font-family:'courier 10 pitch', Courier, monospace;vertical-align:baseline;background-color:#051e30;color:#ffffff;">
   <p>Result : -50</p>
   </div>
<p> </p>]]></description>
<dc:creator>웹지기</dc:creator>
<dc:date>2021-01-07T00:58:45+09:00</dc:date>
</item>


<item>
<title>[ java ] JavaFestival12 - Question2 - 일한 시간을 입력받아 총 임금을 계산하는 시급계산기입니다.  시급은 5000원이며 8시간보다 초과 근무한 시간에 대해  1.5배의 시급이 책정됩니다.</title>
<link>https://www.funyphp.com/bbs/board.php?bo_table=java&amp;amp;wr_id=119</link>
<description><![CDATA[<p>JavaFestival10</p>
<p> - Question1 - 일한 시간을 입력받아 총 임금을 계산하는 시급계산기입니다.  시급은 5000원이며 8시간보다 초과 근무한 시간에 대해  1.5배의 시급이 책정됩니다.</p>
<p> </p>
<div style="padding:10px 10px 10px 18px;border-width:1px 1px 1px 4px;border-style:solid;border-color:#f42857;font-size:13px;line-height:19px;font-family:'courier 10 pitch', Courier, monospace;vertical-align:baseline;background-color:#051e30;color:#ffffff;">
   <p>import java.util.Scanner;</p>
   <p><br /></p>
   <p>public class Question2 {</p>
   <p>    public static void main(String[] args) {</p>
   <p>        Scanner scan = new Scanner(System.in);</p>
   <p>        </p>
   <p>        System.out.printf("일한시간을 입력하세요");</p>
   <p>        int hours = scan.nextInt();</p>
   <p>        </p>
   <p>        int m = 5000;</p>
   <p>        int pay = 0;</p>
   <p>        </p>
   <p>        if (hours &gt; 8) {</p>
   <p>            int over = hours - 8;</p>
   <p>            pay = (m * 8) + (int)(over * m * 1.5);</p>
   <p>        } else {</p>
   <p>            pay = m * hours;</p>
   <p>        }</p>
   <p>        System.out.println("총 임금은 " + pay + "원 입니다");</p>
   <p>    }</p>
   <p>}</p>
   </div>
<p> </p>
<p>결과</p>
<div style="padding:10px 10px 10px 18px;border-width:1px 1px 1px 4px;border-style:solid;border-color:#f42857;font-size:13px;line-height:19px;font-family:'courier 10 pitch', Courier, monospace;vertical-align:baseline;background-color:#051e30;color:#ffffff;">
   <p>일한시간을 입력하세요10</p>
   <p>총 임금은 55000원 입니다</p>
   </div>
<p> </p>]]></description>
<dc:creator>웹지기</dc:creator>
<dc:date>2021-01-07T00:55:15+09:00</dc:date>
</item>


<item>
<title>[ java ] JavaFestival12 - Question1 - 현재몸무게와 목표몸무게를 각각 입력 받고  주차별 감량몸무게를 입력 받아 목표 달성 시  축하메세지를 띄우는 프로그램을 구현하시오.</title>
<link>https://www.funyphp.com/bbs/board.php?bo_table=java&amp;amp;wr_id=118</link>
<description><![CDATA[<p>JavaFestival12</p>
<p> - Question1 - 현재몸무게와 목표몸무게를 각각 입력 받고  주차별 감량몸무게를 입력 받아 목표 달성 시  축하메세지를 띄우는 프로그램을 구현하시오.</p>
<p> </p>
<div style="padding:10px 10px 10px 18px;border-width:1px 1px 1px 4px;border-style:solid;border-color:#f42857;font-size:13px;line-height:19px;font-family:'courier 10 pitch', Courier, monospace;vertical-align:baseline;background-color:#051e30;color:#ffffff;">
   <p>import java.util.Scanner;</p>
   <p><br /></p>
   <p>public class Question1 {</p>
   <p>    public static void main(String[] args) {</p>
   <p>        Scanner sc = new Scanner(System.in);</p>
   <p>        System.out.print("현재몸무게 : ");</p>
   <p>        int wN = sc.nextInt();</p>
   <p>        System.out.print("목표몸무게 : ");</p>
   <p>        int wOk = sc.nextInt();</p>
   <p>        </p>
   <p>        int w = 1;</p>
   <p>        int wR;        </p>
   <p>        while (true){</p>
   <p>            System.out.print(w + "주차 감량 몸무게 : ");</p>
   <p>            wR = sc.nextInt();</p>
   <p>            wN -= wR;</p>
   <p>            if(wOk &gt; wN) break;</p>
   <p>            w++;</p>
   <p>        }</p>
   <p>        </p>
   <p>        System.out.println(wN + "kg 달성!! 축하합니다!");</p>
   <p>    }</p>
   <p>}</p>
   </div>
<p> </p>
<p>결과</p>
<div style="padding:10px 10px 10px 18px;border-width:1px 1px 1px 4px;border-style:solid;border-color:#f42857;font-size:13px;line-height:19px;font-family:'courier 10 pitch', Courier, monospace;vertical-align:baseline;background-color:#051e30;color:#ffffff;">
   <p>현재몸무게 : 84</p>
   <p>목표몸무게 : 70</p>
   <p>1주차 감량 몸무게 : 5</p>
   <p>2주차 감량 몸무게 : 6</p>
   <p>3주차 감량 몸무게 : 5</p>
   <p>68kg 달성!! 축하합니다!</p>
   </div>
<p> </p>]]></description>
<dc:creator>웹지기</dc:creator>
<dc:date>2021-01-07T00:45:51+09:00</dc:date>
</item>


<item>
<title>[ java ] JavaFestival11 - Question3 - 1,2,4 세 개의 숫자만 쓰는 124나라가 있습니다.</title>
<link>https://www.funyphp.com/bbs/board.php?bo_table=java&amp;amp;wr_id=117</link>
<description><![CDATA[<p>1,2,4 세 개의 숫자만 쓰는 124나라가 있습니다.</p>
<p>124나라에서 사용하는 숫자는 다음과 같이 변환됩니다.</p>
<p>10진법의 1 → 1</p>
<p>10진법의 2 → 2</p>
<p>10진법의 3 → 4</p>
<p>10진법의 4 → 11</p>
<p>10진법의 5 → 12</p>
<p>10진법의 6 → 14</p>
<p><br /></p>
<p>change124() 메소드에 십진수 숫자를 넣으면 124 나라 숫자로 바꾸는 프로그램을 작성하시오.</p>
<p><br /></p>
<div style="padding:10px 10px 10px 18px;border-width:1px 1px 1px 4px;border-style:solid;border-color:#f42857;font-size:13px;line-height:19px;font-family:'courier 10 pitch', Courier, monospace;vertical-align:baseline;background-color:#051e30;color:#ffffff;">
   <p>public class Question3 {</p>
   <p>    public static void main(String[] args) {</p>
   <p>        System.out.println(change123(10));</p>
   <p>    }</p>
   <p><br /></p>
   <p>    private static String change123(int num) {</p>
   <p>        String res = "";</p>
   <p>        int[] arr = {4, 1, 2};</p>
   <p>        int i;</p>
   <p>        while (num &gt; 0) {</p>
   <p>            i = num % 3;</p>
   <p>            num = num / 3;</p>
   <p>            if (i == 0) {</p>
   <p>                num -= 1;</p>
   <p>            }</p>
   <p>            res = arr[i] + res;</p>
   <p>        }</p>
   <p>        return res;</p>
   <p>    }</p>
   <p>}</p>
   </div>
<p> </p>
<p>결과</p>
<div style="padding:10px 10px 10px 18px;border-width:1px 1px 1px 4px;border-style:solid;border-color:#f42857;font-size:13px;line-height:19px;font-family:'courier 10 pitch', Courier, monospace;vertical-align:baseline;background-color:#051e30;color:#ffffff;">
   <p>41</p>
   </div>
<p> </p>]]></description>
<dc:creator>웹지기</dc:creator>
<dc:date>2021-01-07T00:37:46+09:00</dc:date>
</item>


<item>
<title>[ java ] JavaFestival11 - Question2 - 연속된 자연수의 합으로 어떤 숫자를 표현하는 방법이 여러 가지가 있다.</title>
<link>https://www.funyphp.com/bbs/board.php?bo_table=java&amp;amp;wr_id=116</link>
<description><![CDATA[<p>연속된 자연수의 합으로 어떤 숫자를 표현하는 방법이 여러 가지가 있다.</p>
<p>예를 들어, 15를 표현하는 방법은</p>
<p>(1+2+3+4+5)</p>
<p>(4+5+6)</p>
<p>(7+8)</p>
<p>(15)</p>
<p>로 총 4가지가 존재한다.</p>
<p><br /></p>
<p>숫자를 입력받아 연속된 수로 표현하는 방법을 반환하는 expressions</p>
<p>함수를 만들어 보시오.</p>
<p><br /></p>
<p>예를 들어 15가 입력된다면 4를 반환해 주면 된다.</p>
<p> </p>
<p>question2.java</p>
<p><br /></p>
<div style="padding:10px 10px 10px 18px;border-width:1px 1px 1px 4px;border-style:solid;border-color:#f42857;font-size:13px;line-height:19px;font-family:'courier 10 pitch', Courier, monospace;vertical-align:baseline;background-color:#051e30;color:#ffffff;">
   <p>public class Question2 {</p>
   <p>    public static void main(String[] args) {</p>
   <p>        Expressions expressions = new Expressions();</p>
   <p>        System.out.println(expressions.expressions(15));</p>
   <p>    }</p>
   <p>}</p>
   </div>
<p> </p>
<p>Expressions.java</p>
<p><br /></p>
<div style="padding:10px 10px 10px 18px;border-width:1px 1px 1px 4px;border-style:solid;border-color:#f42857;font-size:13px;line-height:19px;font-family:'courier 10 pitch', Courier, monospace;vertical-align:baseline;background-color:#051e30;color:#ffffff;">
   <p>public class Expressions {</p>
   <p>    public int expressions(int num) {</p>
   <p>        int result = 1; // 자기 자신의 경우도 포함 1부터 시작</p>
   <p>        for (int i = 1; i &lt;= (num/2); i++) { // 15의 경우 7+8이 마지막 경우에 절반까지만 반복</p>
   <p>            int sum = 0;</p>
   <p><br /></p>
   <p>            for (int j = i; j &lt;= num; j++) {</p>
   <p>                sum += j;</p>
   <p>                //System.out.println("sum : " + sum);</p>
   <p>                if (sum == num) { // sum ==  num  result는 1더하고 종료</p>
   <p>                    result += 1;</p>
   <p>                    //System.out.println("result : " + result);</p>
   <p>                    break;</p>
   <p>                } else if (sum &gt; num) { // sum이 num보다 크면 종료</p>
   <p>                    break;</p>
   <p>                }</p>
   <p>            }</p>
   <p>        }</p>
   <p>        return result;</p>
   <p>    }</p>
   <p>}</p>
   </div>
<p> </p>
<p>결과</p>
<div style="padding:10px 10px 10px 18px;border-width:1px 1px 1px 4px;border-style:solid;border-color:#f42857;font-size:13px;line-height:19px;font-family:'courier 10 pitch', Courier, monospace;vertical-align:baseline;background-color:#051e30;color:#ffffff;">
   <p>4</p>
   </div>
<p> </p>]]></description>
<dc:creator>웹지기</dc:creator>
<dc:date>2021-01-07T00:30:46+09:00</dc:date>
</item>


<item>
<title>[ java ] JavaFestival11 - Question1 - 1937년 Collatz란 사람에 의해 제기된 이 추측은 ?</title>
<link>https://www.funyphp.com/bbs/board.php?bo_table=java&amp;amp;wr_id=115</link>
<description><![CDATA[<p>JavaFestival11</p>
<p> - Question1 -  1937년 Collatz란 사람에 의해 제기된 이 추측은</p>
<p>  입력된 수가 짝수라면 2로 나누고, 홀수라면 3을 곱하고 1을 더한 다음</p>
<p>  결과로 나온 수에 같은 작업을 1이 될 때까지 반복할 경우,</p>
<p>  모든 수가 1이 됩니다.</p>
<p>  입력된 수가 6이라면 6→3→10→5→16→8→4→2→1 이 되어 총 8번 만에 1이 됩니다.</p>
<p>  collatzNumber() 메소드를 만들어 입력된 수가 몇 번 만에 1이 되는지 반환해 주세요.</p>
<p>  단, 500번을 반복해도 1이 되지 않는다면 –1을 반환해 주세요.</p>
<p> </p>
<p><br /></p>
<div style="padding:10px 10px 10px 18px;border-width:1px 1px 1px 4px;border-style:solid;border-color:#f42857;font-size:13px;line-height:19px;font-family:'courier 10 pitch', Courier, monospace;vertical-align:baseline;background-color:#051e30;color:#ffffff;">
   <p>public class Question1 {</p>
   <p>    public static void main(String[] args) {</p>
   <p>        int number = CollatzNumber(6);</p>
   <p>        System.out.println(number);</p>
   <p>    }</p>
   <p><br /></p>
   <p>    private static int CollatzNumber(int num) {</p>
   <p>        long n = (long) num;</p>
   <p>        for (int i = 0; i &lt; 500; i++) {</p>
   <p>            if (n == 1)</p>
   <p>                return i;</p>
   <p>            n = (n % 2 == 0) ? n / 2 : n * 3 + 1;</p>
   <p>        }</p>
   <p>        return -1;</p>
   <p>    }</p>
   <p>}</p>
   </div>
<p> </p>
<p>결과</p>
<div style="padding:10px 10px 10px 18px;border-width:1px 1px 1px 4px;border-style:solid;border-color:#f42857;font-size:13px;line-height:19px;font-family:'courier 10 pitch', Courier, monospace;vertical-align:baseline;background-color:#051e30;color:#ffffff;">
   <p>8</p>
   </div>
<p><br /></p>]]></description>
<dc:creator>웹지기</dc:creator>
<dc:date>2021-01-07T00:17:03+09:00</dc:date>
</item>


<item>
<title>[ java ] JavaFestival10 - Question1 - 어떤 문장의 각 알파벳을 일정한 거리만큼 밀어서 다른 알파벳으로 바꾸는 암호화 방식을 시저 암호라고 한다.</title>
<link>https://www.funyphp.com/bbs/board.php?bo_table=java&amp;amp;wr_id=114</link>
<description><![CDATA[<p>JavaFestival10</p>
<p> - Question1 - 어떤 문장의 각 알파벳을 일정한 거리만큼 밀어서 다른 알파벳으로 바꾸는 암호화 방식을 시저 암호라고 한다.</p>
<p> </p>
<p>A를 3만큼 밀면 D가 되고 z를 1만큼 밀면 a가 됩니다. 공백은 수정하지</p>
<p>않는다.</p>
<p><br /></p>
<p>보낼 문자열 s와 얼마나 밀지 알려주는 n을 입력받아 암호문을 만드는</p>
<p>ceasar 함수를 완성해 보시오.</p>
<p><br /></p>
<p>“a B z”, 4를 입력받았다면 “e F d”를 리턴한다.</p>
<p><br /></p>
<div style="padding:10px 10px 10px 18px;border-width:1px 1px 1px 4px;border-style:solid;border-color:#f42857;font-size:13px;line-height:19px;font-family:'courier 10 pitch', Courier, monospace;vertical-align:baseline;background-color:#051e30;color:#ffffff;">
   <p>public class Question1 {</p>
   <p>    public static void main(String[] args) {</p>
   <p>        //어떤 문장의 각 알파벳을 일정한 거리만큼 밀어서 다른 알파벳으로</p>
   <p>        //바꾸는 암호화 방식 - 시저암호</p>
   <p>        //A를 3만큼 밀면 D가 되고 Z를 1만큼 밀면 A 가 됩니다. 공백은 미수정</p>
   <p>        //보낼 문자열 s와 얼마나 밀지 알려주는 n을 입력받아 암호문을 만드는</p>
   <p>        //ceasar함수를 완성</p>
   <p>        //"a B z", 4를 입력받았다면 "e F d" 를 리턴한다.</p>
   <p>        //Ceasar c = new Ceasar("a B z", 4);</p>
   <p>        </p>
   <p>        System.out.println(caesar("a B z", 4));</p>
   <p>    }</p>
   <p><br /></p>
   <p>    private static String caesar(String string, int num) {</p>
   <p>        String result = "";</p>
   <p>        </p>
   <p>        for(int i=0; i&lt;string.length(); i++) {</p>
   <p>            char a = string.charAt(i);</p>
   <p>            if(a&gt;= 97 &amp;&amp; a &lt;= 122) { // 소문자 검사</p>
   <p>                if(a+num &gt; 122) {</p>
   <p>                    result += (char)(a+num-26);</p>
   <p>                } else {</p>
   <p>                    result += (char)(a+num);</p>
   <p>                }</p>
   <p>            } else if(a &gt;= 65 &amp;&amp; a &lt;= 90) { // 대문자 검사</p>
   <p>                if(a+num &gt; 90) {</p>
   <p>                    result += (char)(a+num-26);</p>
   <p>                } else {</p>
   <p>                    result += (char)(a+num);</p>
   <p>                }</p>
   <p>            } else {</p>
   <p>                result += (char)a;</p>
   <p>            }</p>
   <p>        }</p>
   <p>        return result;</p>
   <p>    }</p>
   <p>}</p>
   </div>
<p> </p>
<p>결과</p>
<div style="padding:10px 10px 10px 18px;border-width:1px 1px 1px 4px;border-style:solid;border-color:#f42857;font-size:13px;line-height:19px;font-family:'courier 10 pitch', Courier, monospace;vertical-align:baseline;background-color:#051e30;color:#ffffff;">
   <p>e F d</p>
   </div>
<p> </p>]]></description>
<dc:creator>웹지기</dc:creator>
<dc:date>2021-01-07T00:09:18+09:00</dc:date>
</item>

</channel>
</rss>
