분류 전체보기 29

[Git 설치 및 초기설정, Git 명령어] Git으로 버전 관리하기

git 설치 및 초기 설정 $ brew install git brew를 이용해서 git을 설치 $ git 깃 설치가 정상적으로 되었는지 확인 git의 help 페이지가 나오게 된다 $ git config --global user.name "자신의 이름" $ git config --global user.email "자신의 이메일" commit 할 때 여기서 등록한 이름과 이메일이 사용된다 repository 생성 $ git init 자신이 원하는 곳에 directory를 하나 만들고, 해당 directory에 들어가서 git init 명령어 입력하면 해당 디렉터리에 버전이 저장될 'repository(저장소)'가 생성 $ ls -la 숨김 파일을 보게 되면 .git 파일이 생성되어 있을 것임 .git 파일..

etc 2022.06.28

[이코테][유형별 기출문제][구현] 문자열 재정렬

문제 알파벳 대문자와 숫자(0 ~ 9)로만 구성된 문자열이 입력으로 주어집니다. 이때 모든 알파벳을 오름차순으로 정렬하여 이어서 출련한 뒤에, 그 뒤에 모든 숫자를 더한 값을 이어서 출력합니다. 예를 들어 K1KA5CB7이라는 값이 들어오면 ABCKK13을 출력합니다. 입력조건 첫째 줄에 하나의 문자열 S가 주어집니다. (1

Algorithm/이코테 2022.05.24

[이코테][유형별 기출문제][그리디] 모험가 길드

문제 한 마을에 모험가가 N명 있습니다. 모험가 길드에서는 N명의 모험가를 대상으로 '공포도'를 측정했는데, '공포도'가 높은 모험가는 쉽게 공포를 느껴 위험 상황에서 제대로 대처할 능력이 떨어집니다. 모험가 길드장인 동빈이는 모험가 그룹을 안전하게 구성하고자 공포도가 X인 모험가는 반드시 X명 이상으로 구성한 모험가 그룹에 참여해야 여행을 떠날 수 있도록 규정했습니다. 동빈이는 최대 몇 개의 모험가 그룹을 만들 수 있는지 궁금합니다. 동빈이를 위해 N명의 모험가에 대한 정보가 주어질 때, 여행을 떠날 수 있는 그룹 수의 최댓값을 구하는 프로그램을 작성하세요. 예를 들어 N=5이고, 각 모험가의 공포도가 다음과 같다고 가정합시다. 2 3 1 2 2 이때, 그룹 1에 공포도가 1, 2, 3인 모험가를 한 ..

Algorithm/이코테 2022.05.12

[파이썬][백준][10818번] 최소, 최대

- 문제 - 풀이 방법 1 N = int(input()) data = list(map(int, input().split())) mini = data[0] max = data[0] for i in range(N): if mini > data[i]: mini = data[i] if max < data[i]: max = data[i] print(mini, max) 방법 1은 일반적인 다른 언어에서 사용하는 알고리즘을 이용해서 푸는 것이다. 방법 2 N = int(input()) data = list(map(int, input().split())) print(min(data), max(data)) 방법 2는 파이썬 내장 함수인 min()과 max()를 사용하는 것이다.

[파이썬][백준][10871번] X보다 작은 수

- 문제 - 풀이 N, X = map(int, input().split()) data = list(map(int, input().split())) for i in range(N): num = data.pop(0) if X > num: print(num) - 고민 코드를 짜다가 오류가 난 부분이 있다. 아무 생각 없이 num = data.pop(i) 로 코드를 짰었는데 여기서 문제가 발생한 것이다. pop함수는 리스트의 젤 앞에 있는 요소를 내보내고, 이후 뒤의 요소들이 앞으로 당겨진다. 즉 1, 2, 3이 리스트에 들어있었고 pop함수를 한번 호출하면 1이 반환되고 뒤에 있던 2, 3이 앞으로 당겨지는 것이다. 따라서 pop은 위의 문제에서는 항상 0번째에 위치한 요소만 반환시켜주면 된다. 즉 pop(0..

[파이썬][백준][2439번] 별 찍기 - 2

- 문제 - 풀이 방법 1 N = int(input()) for i in range(1, N+1): print(" " * (N - i) + "*" * i) 방법 2보다 더 간단한 코드이다. 파이썬에서는 문자열끼리 + 연산자를 쓸 수 있기에 이렇게 코드를 짜면 간단하다. 방법 2 N = int(input()) for i in range(1, N+1): print(" " * (N - i), "*" * i, sep="") print()를 이용할 때 쉼표를 이용해서 출력을 하면, 쉼표 앞 뒤의 것들이 띄어쓰기가 한번 돼서 나온다. 그래서 sep=""을 통해서 공백이 없게 만들어주면 된다.

[파이썬][백준][10950번] A+B - 3

- 문제 - 풀이 T = int(input()) for _ in range(T): A, B = map(int, input().split()) print(A+B) for문에서 변수를 따로 지정하지 않고 range만큼 반복하기 위해 _ 연산자를 사용한다. - 고민 이 문제 코드는 쉽기 때문에 따로 포스팅하지 않으려고 했다. 근데 백준 채점 서버가 어떻게 돌아가는지 몰라서 아래와 같이 배열을 이용해서 한번에 입력받고 한번에 출력하는 프로그램을 만드려고 해서 이 부분을 짚고 넘어가려고 포스팅을 해본다. T = int(input()) a = list() for i in range(T): A, B = map(int, input().split()) a.append(A + B) for j in range(T): pri..

[파이썬][백준][2753번] 윤년

- 문제 - 풀이 year = int(input()) if ((year % 4 == 0) and (year % 100 != 0)) or (year % 400 == 0): print("1") else: print("0") 윤년이 되기 위한 조건은 3가지이다. 1. 4의 배수 2. 4의 배수이지만, 100의 배수가 아닌 것 3. 4의 배수이지만, 400의 배수는 윤년 if 문의 조건에서 이것을 만족하기 위해서는 글자 그대로 식을 작성하면 된다. 1 and 2 or 3 이것이 곧 답