반응형
$('#id').find("span");

$('#id').find('#id2').val();

첫번째 요소의 하위 요소중 특정 요소 즉 태그값, 아이디 클래스 를 찾는 메서드.

그렇게 찾은 요소는 .val, .css .attr.... 등으로 활용할수있다.

728x90
반응형

인텔리제이를 처음 이용하는데 svn 연동에 애를 먹었기에 나같은 실수를 하지않도록 바라는 마음에 포스팅을 작성한다.

 

 

svn 연동 순서 

VCS > Browse VCS Repository > Brows Subversion Repository > 왼쪽 하단부에 + 마크 클릭 > svn주소 복붙

 

이렇게 간단한 순서인데

Cannot run program "svn" : CreateProcess error=2, 지정된 파일을 찾을 수 없습니다

라는 에러메세지가 뜨는것... 뒤늦게 이클립스처럼 일단 플러그인을 받아볼까 해서 

 

SVN Disconnect 를 받았는데 다른사람은 되는지모르겠지만.. 나는 안됐다.
(2019.07.03 _ 알고보니 인텔리제이 버전차이였다. 2018.3 버전 이후부터는 별도 svn을 다운받아야한다고 한다)

 

그래서

 

https://www.visualsvn.com/downloads/

 

VisualSVN | All Downloads

 

www.visualsvn.com

 

이곳에서 별도 svn을 다운받았다.

 

해당 페이지의 첫번째 다운로드를 클릭.

 

(참고로 나는 java, tomcat 등의 툴을 저장할때 D 드라이브에 developTools 라는 폴더를 만들어서

그곳에서 일괄 관리하고있다. c에 저장하면 user\user\programFiles... 이렇게 더럽게 되기때문.)

 

인텔리제이에 다시 들어가서 svn 링크 적어넣고 새로고침을 누르거나 껏다켜봐도 여전히 안된다.

특히나 2019년판이라 구글링해도 정보가 너무없어서 화가 났지만 승리의 stackoverflow !!

 

https://stackoverflow.com/questions/22572861/error-cant-use-subversion-command-line-client-svn-when-opening-android-proj

 

이곳에서 힌트를 얻어, 아래의 사진과 같이 settings > Version Control > Subversion 의 첫 빈칸에

다운받은 svn.exe 의 경로를 적어넣고 새로고침 혹은 껏다키면 된다 야호!

 

728x90
반응형

프로그래머스 문제 링크 

https://programmers.co.kr/learn/courses/30/lessons/42576

 

내 스스로 푼 코드

import java.util.HashMap;
class Solution {
    public String solution(String[] participant, String[] completion) {
        String answer = "";
        HashMap<Integer, String> mapParticipant=new HashMap<>();
		for(int i=0; i<participant.length;i++) {
			mapParticipant.put(i, participant[i]);
		}
		
		for(int i=0; i<mapParticipant.size();i++) {
			for(int j=0; j<completion.length;j++) {
				if(mapParticipant.get(i).equals(completion[j])) {
					mapParticipant.put(i, "");
					completion[j]="";
				}
			}
		}

		for(int i=0; i<mapParticipant.size() ;i++) {
			answer+=mapParticipant.get(i);
		}
        
        return answer;
    }
}

 

굳이 mapParticipant에 null값을 넣어줘야하는게 마음에 안들었다.

 

*다른사람의 코드

import java.util.Arrays;

class Solution {
    public String solution(String[] participant, String[] completion) {
        String answer = "";
        String temp = "";

        Arrays.sort(participant);	//알파벳 순 정렬
        Arrays.sort(completion);

        int i = 0;

        while(i < completion.length){
            if(!completion[i].equals(participant[i])){	//도중에 다른글자발견한다면
                temp = participant[i];
                break;
            }else{
                i++;
            }
        }

        if(!temp.equals("")){	//도중에 다른글자 발견 했을때
            answer = temp;
        }else{					//끝내 다른글자 발견 못했을때
            answer = participant[participant.length-1];
        }

        return answer;
    }
}

1. Arrays.sort 를 활용하여 우선 알파벳순으로 정렬 

2. completion 만큼 돌되 중간에 다른글자 발견하면 그 글자를 temp 에 저장

3. temp가 null이 아니라면 그것을 return , null이면 participant 의 마지막 인덱스를 return .

 

Arrays.sort를처음 알았다.

먼저 정렬부터 해 주고 다른걸 발견했을때 리턴, 아니면 마지막인덱스 값을 리턴하는 방식이다.

 

 

*다른사람의 코드

import java.util.HashMap;

class Solution {
    public String solution(String[] participant, String[] completion) {
        String answer = "";
        HashMap<String, Integer> hm = new HashMap<>();
        for (String player : participant) hm.put(player, hm.getOrDefault(player, 0) + 1);
        for (String player : completion) hm.put(player, hm.get(player) - 1);

        for (String key : hm.keySet()) {
            if (hm.get(key) != 0){
                answer = key;
            }
        }
        return answer;
    }
}

프로그래머스 정답의 가장 상위에 있는 코드이다.

 

1. map에 key : player, value : 1  이런 형식으로 넣을건데 만약 같은 이름일 경우엔 1이 아닌 다른 숫자로 해줄것인데

  map에 참가자 명단을 하나씩 넣되, value는 map.get ( player ) 를 해준다.

  왜냐하면 동명이인이 있을 수 있기 때문에 palyer를 key로 썼을때 value가 없으면 0으로 셋팅, 0+1로  value는 1

  반대로 player 를 key 로 썼을때 value가 기존에 셋팅된 1로 있을 경우 1+1 =2로 value 는 2로 셋팅된다.(동명이인)

 

2. 같은 key 값으로 put 해주면 그 value는 갱신되는 HashMap의 특성을 이용하여 completion 이름들을 put 해준다.

   value는 기존 hm.get (player)의 value - 1 을 해준다.

   이렇게 되면 동명이인을 제외한 모든 player 들의 value는 0이 된다.

 

사실 동명이인이 있을 수 있다는 조건이 없으면

foreach문으로 participant를 돌릴때 key:player, value : hm.getOrDefault 를 안해주고 value : 1 로 적어넣어도된다.

그러면 모든참가자의 value는 1이 되고  completion의 이름들과 부합하였을때 0이 되며

부합하지않은 사람만 1로 남아있기 때문이다. 

 

 

문제의 특성상 key value 의 두개 중에 이름만 보면되므로 리스트로 해도될텐데 왜 해시맵으로 하라고하는걸까

key를 이름들로 구성하고 value는 어떻게 활용해야할지 잘 몰랐었는데 동명이인을 가리기위한 용도로 활용하는 것을 보고 갈길이 멀다고 생각했다.

728x90
반응형

보통 스트링 문자열을 비교할때 .equals를 쓰는데 

 

.equalsIgnoreCase();

요런 녀석도 있다.

얜 대소문자를 구분하지않는다.

String str1 = "app";
String str2 = "APP";

"app".equalsIgnoreCase(str2) //같음
"APP".equalsIgnoreCase(str1) //같음

"app".equals(str2); //다름
"APP".equals(str1); //다름

 

 

728x90

+ Recent posts