git branch
: 브랜치 리스트 출력, 사용 중인 브랜치 확인
git branch 브랜치명
: 브랜치 생성
git switch 브랜치명
git checkout 브랜치명
성능은 동일하지만 switch
가 비교적 최신에 생김
git switch -c 브랜치명
git checkout -b 브랜치명
git branch -d 브랜치명
: 뻗어나온 브랜치에 비해 변경사항이 없을 때만 사용 가능
git branch -D 브랜치명
: delete force, 브랜치를 강제로 삭제
git switch 최종 브랜치명
로 브랜치 이동 후 git merge 합칠 브랜치명
을 사용하여 브랜치를 합칠 수 있다. 하지만 CLI환경에서는 merge를 잘 사용하지 않고 github 사이트에서 merge(PR)를 진행한다.
로마 숫자 N개를 사용해서 만들 수 있는 서로 다른 수의 개수를 출력
itertools 모듈의 중복 조합을 사용하여 IVXL 4개의 로마 숫자 중 N개를 사용하여 만들 수 있는 조합을 구한다.
IVXL은 각각 해당 숫자와 dictionary의 형태로 저장한다.
조합이 달라도 조합에 해당하는 숫자의 합이 일치할 수 있기 때문에 조합된 숫자의 합이 결과 리스트에 있다면 추가하지 않고 결과 리스트의 길이를 출력하는 방법을 사용하여 문제를 해결했다.
import itertools
Rome = {"I": 1, "V": 5, "X": 10, "L": 50}
def diff_num(num):
result = []
for combination in itertools.combinations_with_replacement(list(Rome.keys()), num):
sum_num=0
for i in combination:
sum_num+=Rome[i]
if sum_num not in result:
result.append(sum_num)
return len(result)
print(diff_num(int(input())))
나3곱2 게임의 결과 수열A의 순서를 섞은 수열B가 입력으로 들어올 때 수열A 구하기
입력받은 수열B를 순서대로 0번 index를 수열A의 시작으로 가정하고 계산, 다음 index를 시작으로 가정하는 방식의 반복문을 사용했다.
나3곱2의 조건에 맞는 값이 수열B에 존재할 때 수열A 리스트에 저장한다.
반복이 끝났을 때 수열A의 길이가 수열B와 같다면 출력하도록 구현했다.
n=int(input())
pb=list(map(int,input().split()))
for start_num in pb:
result=[start_num]
for _ in range(n-1):
if start_num%3==0 and start_num//3 in pb:
start_num//=3
result.append(start_num)
elif start_num*2 in pb:
start_num*=2
result.append(start_num)
if len(result)==n:
break
print(' '.join(map(str,result)))