https://school.programmers.co.kr/learn/courses/30/lessons/12915
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문자열 내 마음대로 정렬하기 문제.
문자열 배열과 정수값을 입력받으면 해당 정수의 인덱스 기준으로 알파벳 순 정렬을 한 후 결과값을 보여줘야 하는 문제이다. 아이디어가 떠오르지 않아 한참 고민하다 천재적인 해결법을 발견했다.
import java.util.*;
class Solution {
public String[] solution(String[] s, int n) {
String[] answer = new String[s.length];
List<String> list = new ArrayList<>();
for (int i = 0; i < s.length; i++) {
list.add(s[i].charAt(n) + s[i]);
}
Collections.sort(list);
for (int i = 0; i < s.length; i++) {
answer[i] = list.get(i).substring(1);
}
return answer;
}
}
해당 인덱스가 가리키는 알파벳을 맨 앞에 붙인 후 이를 정렬시키고 결과 배열에는 맨 앞 문자를 제외한 인덱스 1부터 끝까지의 문자열을 담는다. 나와 같은 정규 교육을 받았다고는 생각되지 않는 기발한 아이디어이다.
Git
오늘 팀원들과 git branch를 사용해 협업을 (시도)했다.
방식은 다음과 같다.
원격 저장소에서 main 브랜치와 dev 브랜치 생성, dev로 기능들을 통합한 후 나중에 완성하고 main으로 merge 시킬 예정이다.
각자의 로컬에서 기능 브랜치를 새로 생성한 후 각자 개발, git push origin [기능브랜치이름] 형식으로 원격 저장소에 기능 브랜치로 업로드 후 Github에서 dev로 commit chage를 한다. 이때 만약 충돌이 난다면 내 기능 브랜치에서 git pull origin dev를 통해 로컬에서 충돌 해결 후, 다시 push 하고 commit chage를 한다. 충돌없이 원격 저장소에서 무사히 merge 되었다면 내 로컬에 있는 dev 브랜치에서도 git pull origin dev를 하여 최신으로 업데이트한다. 사용이 끝난 브랜치는 삭제한다.
나는 git clone을 진행하면 원격에 있는 dev 브랜치도 같이 오게 되어서 dev 브랜치로 이동하면 원격의 dev 브랜치로 이동하는 줄 알았다. 알고 보니 원격에 있는 브랜치와 로컬의 브랜치는 완전히 다른 브랜치이고 원격의 브랜치를 뜻하는 건 origin을 붙이는 것 같다. (git push origin main / git pull origin dev...) 오늘 프로젝트 삭제하고 다시 클론하는 것만 대 여섯 번은 했으니 어느정도 이해는 끝났다고 믿는다.
'내배캠 > TIL' 카테고리의 다른 글
24. 08. 03 (0) | 2024.08.04 |
---|---|
24. 08. 02 (0) | 2024.08.02 |
Git Branch 정리 (0) | 2024.07.31 |
24. 07. 31 (0) | 2024.07.31 |
24. 07. 30 (0) | 2024.07.30 |