반응형

JAVA 형변환 종류들입니다

int to String



String to int



double to String



long to String



float to String



String to double



String to long



String to float



decimal to binary



decimal to hexadecimal




hexadecimal(String) to int



ASCII Code to String



Integer to ASCII Code



Integer to boolean



boolean to Integer



출처 : http://theeye.pe.kr/archives/457

반응형
반응형
문제 설명 입니다

수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다.

마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수들의 이름이 담긴 배열 completion이 주어질 때, 완주하지 못한 선수의 이름을 return 하도록 solution 함수를 작성해주세요.

제한사항
  • 마라톤 경기에 참여한 선수의 수는 1명 이상 100,000명 이하입니다.
  • completion의 길이는 participant의 길이보다 1 작습니다.
  • 참가자의 이름은 1개 이상 20개 이하의 알파벳 소문자로 이루어져 있습니다.
  • 참가자 중에는 동명이인이 있을 수 있습니다.
입출력 예
participantcompletionreturn
[leokikieden][edenkiki]leo
[marinajosipanikolavinkofilipa][josipafilipamarinanikola]vinko
[mislavstankomislavana][stankoanamislav]mislav
입출력 예 설명

예제 #1
leo는 참여자 명단에는 있지만, 완주자 명단에는 없기 때문에 완주하지 못했습니다.

예제 #2
vinko는 참여자 명단에는 있지만, 완주자 명단에는 없기 때문에 완주하지 못했습니다.

예제 #3
mislav는 참여자 명단에는 두 명이 있지만, 완주자 명단에는 한 명밖에 없기 때문에 한명은 완주하지 못했습니다.

출처 https://programmers.co.kr/

제가푼것입니다


class Solution {

    public String solution(String[] participant, String[] completion) {

        String answer = "";

int cj = 0;

   for ( int j = 0; j < participant.length; j++)

   { 

        int check = 0;

        //참여자내에 중복체크

        for(int a = 0; a <participant.length; a++)

        {

            if(participant[j].equals(participant[a]))

            {

                check = check+1;

            }

        }

       //중복값 찾아서 trrr에넣기

        String trrr = "";

        if(1 < check)

        {

            trrr = participant[j];    

            System.out.println("중복값:" + trrr);

        }

       if(!trrr.equals(""))

       {

           cj = cj+1;

       }

        int OX = 0;

       for (int i = 0; i < completion.length  ; i++)

       {     

            //if(!participant[j].equals(completion[i]))

           //if(0 == participant[j].compareTo(completion[i]))

           //찾아서 있으면 true

            if(participant[j].contains(completion[i]))

            {

               OX = OX+1;

            }

         

       }

     

        if(1 < cj && OX == 1)

        {

            return answer = participant[j];

        }

       //찾고없어서 OX가 0이면 미완주선수 출력

        if(OX == 0)

        {

            return answer = participant[j];

        }


    }

        return answer = "End";

    }



}



결과값은 이렇게 나옵니다

테스트 1
입력값 ["leo", "kiki", "eden"], ["eden", "kiki"]
기댓값 "leo"
실행 결과 테스트를 통과하였습니다.
테스트 2
입력값 ["marina", "josipa", "nikola", "vinko", "filipa"], ["josipa", "filipa", "marina", "nikola"]
기댓값 "vinko"
실행 결과 테스트를 통과하였습니다.
테스트 3
입력값 ["mislav", "stanko", "mislav", "ana"], ["stanko", "ana", "mislav"]
기댓값 "mislav"
실행 결과 테스트를 통과하였습니다.
출력 중복값:mislav
중복값:mislav
테스트 4
입력값 ["xxx", "bbb", "ggg", "ddd", "aaa"], ["aaa", "bbb", "ddd", "ggg"]
기댓값 "xxx"
실행 결과 테스트를 통과하였습니다.
테스트 5
입력값 ["aaa", "bbb", "ccc", "ddd"], ["aaa", "bbb", "ddd"]
기댓값 "ccc"
실행 결과 테스트를 통과하였습니다.


기댓값


실행 결과


5번중 5번 성공인데요

너무 못하는것같네요


채점을하게되면 20점이나오네여 10번중 2번만 성공했따는뜻이죠



아시는분계시면 댓글 부탁드립니다!!

반응형
반응형

Oracle 10g에서는 REGEXP_로 시작하는 함수를 지원합니다. 레귤러 익스프레션 지원이죠. 아래는 그 함수들의 사용방법을 공유합니다.

1. REGEXP_INSTR 함수
- 문법 : REGEXP_INSTR(소스 문자열, Pattern [, 검색 시작 위치 [, 발생 횟수 [, 반환 옵션 [, Match를 시도할 때의 옵션]]]])
- 예제

1
2
3
4
5
6
SELECT REGEXP_INSTR('Regular Expression', 'a') REG_INS
FROM dual;
 
   REG_INS
----------
         6



2. REGEXP_LIKE
- 문법 : REGEXP_LIKE(소스 문자열, Pattern [, Match를 시도할 때의 옵션])
- [[:digit:]] : 숫자인것
- [^[:digit:]] : 숫자가 아닌것
- [[:alpha:]]
- 필듯가 숫자와 문자가 같이 있을 경우 잘 판단해야 함
- 예제

1
2
3
4
5
6
7
8
9
10
SELECT SSN                            
FROM   TEST                           
WHERE  SSN > ' '                      
AND    REGEXP_LIKE(SSN, '[^[:digit:]]');
 
SSN
-------------
******2229149
******2228659
******2223591



3. REGEXP_REPLACE
- REGEXP_REPLACE(소스 문자열, Pattern [, 바꿀 문자열 [, 위치 [, 발생횟수 [Match 파라미터]]]])
- 예제

1
2
3
4
5
6
7
8
9
SELECT REGEXP_REPLACE(SSN, '[0-9]', '*' , 7) REG_REP
FROM(                                               
          SELECT '7901061842210' SSN                
          FROM dual                                 
);   
 
REG_REP
-------------
790106*******



4. REGEXP_SUBSTR
- REGEXP_SUBSTR(소스 문자열, Pattern [, 위치 [, 발생 횟수 [, Match를 시도할 때의 옵션]]])
- 예제

1
2
3
4
5
6
7
8
9
SELECT REGEXP_SUBSTR(EMAIL, '[^@]+') REG_SUB
FROM(                                      
         SELECT 'pepsi@paran.com' EMAIL    
         FROM dual                         
); 
 
REG_S
-----
pepsi


위 내용 출처 : http://happybuk.tistory.com/50


# 문자 클래스
 [:digit:]    : 숫자
 [:punct:]  : 특수문자
 [:alpha:]  : 알파벳

기타, 정규표현식 단축 문자, 문자 클래스


# 예제

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
/*
-- # 문자 클래스이용 숫자, 특수문자 제거
*/
SELECT REGEXP_REPLACE(
                '!23$56^*[]<>()~`'' 숫자, .특수문자 테스트_Test '
                , '[[:digit:]|[:punct:]]'
                , '') AS RESULT
     FROM DUAL
;   
RESULT
--------------------------------------------------------------------------------
 숫자 특수문자 테스트Test
 
 
--------------------------------------------------------------------------------
/*
    -- TOPIC 컬럼에 한글이 1~10개 사이인 것을 조회
    -- 옵션
    $ = {}$ 과 사용시에 절대값인듯...?
*/
 
SELECT BULLETIN_SEQ
        , TOPIC
        , CREATE_ID
    FROM BULLETIN
    WHERE REGEXP_LIKE(TOPIC, '^[가-힝]{1,10}$')
    ORDER BY 1
;
 
--------------------------------------------------------------------------------
/*
    -- 한글 문자인 것만 조회
*/ 
SELECT BULLETIN_SEQ
        , TOPIC
        , CREATE_ID
    FROM BULLETIN
    WHERE REGEXP_LIKE(TOPIC, '^[가-힝]')
    ORDER BY 1
;
 
--------------------------------------------------------------------------------
/*
   -- # TOPIC 컬럼에 영어 대소문자가 3~10개 사이 또는 한글이 2~3개 사이인 것을 조회
*/ 
SELECT BULLETIN_SEQ
        , TOPIC
        , CREATE_ID
    FROM BULLETIN
    WHERE REGEXP_LIKE(TOPIC, '^[a-zA-Z]{3,10}|[가-힝]{2,3}$')
;   
 
--------------------------------------------------------------------------------
SELECT pw
  FROM t
 WHERE REGEXP_LIKE(pw, '[a-z]') -- 소문자 포함 여부
   AND REGEXP_LIKE(pw, '[A-Z]') -- 대문자 포함 여부
   AND REGEXP_LIKE(pw, '[0-9]') -- 숫자 포함 여부
   AND REGEXP_LIKE(pw, '[[:punct:]]') -- 특수문자 포함 여부
   AND LENGTH(pw) >= 8 -- 8자리 이상
;
 
--------------------------------------------------------------------------------
/*
   -- # 컬럼 check 제약 조건
*/
-- 10자 이하의 한글만 입력 받고자 할때.
ALTER TABLE BULLETIN
       ADD CONSTRAINT BULLETIN_USER_NAME_KO_CHK
       CHECK (REGEXP_LIKE(USER_NAME_KO, '^[가-힝]{1,10}$'))
;

출처 ; http://develop.sunshiny.co.kr/840

반응형

+ Recent posts