본문 바로가기

전체 글229

[백준] 10815번 숫자 카드(with python) https://www.acmicpc.net/problem/10815 10815번: 숫자 카드 첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10, www.acmicpc.net 1. 내가 작성한 코드 import sys n = int(sys.stdin.readline()) s_number = sorted(list(map(int, sys.stdin.readline().split()))) m = int(sys.stdin.readline()) total_number = list(map(int, sys.stdin.readline().split()).. 2023. 2. 1.
[알고리즘] 이진탐색 + 문제풀이 순차탐색 리스트 안에 있는 특정 데이터를 찾기 위해 모든 데이터를 차례대로 확인하는 방법 정렬되지 않은 list에서 사용하며, 시간복잡도는 O(N) 이진탐색 찾으려는 데이터와 중간점 위치에 있는 데이터를 반복적으로 비교해서 원하는 데이터 탐색 배열 내부의 데이터가 정렬되어 있어야만 사용 가능, 시간복잡도는 O(logN) 데이터의 개수나 값이 1,000만 단위 이상으로 넘어갈 때 사용하면 좋 + 이진탐색트리 왼쪽 노드는 부모 노드보다 작고, 오른쪽 노드는 부모 노드보다 큼 1. 재귀함수를 이용한 이진탐색 코드 def binary_search(array, target, start, end): if start > end: return None mid = (start + end)//2 if array[mid] .. 2023. 2. 1.
#03 pop(),remove(),del()차이 python에서 pop() 과 remove() 를 제대로 구분하지 못해서 뻘 짓 하다가 작성하는 게시물 크크 remove => value로 item 삭제 pop => index로 item 삭제 => 원소 한 개만 삭제 가능, 지워진 인덱스 값 반환 del => index로 item 삭제 => 원소 한 개 삭제 가능, 범위 지정해서 여러 개 삭제 가능 / 지워진 인덱스 값 반환하지 않음 del 형태 => del list명 [인덱스] 아래는 pop, remove, del 사용 예시 arr = [4,3,2,1] arr.pop(min(arr)) #min(arr)는 1이라서 인덱스 1에 있는 item 제거 print(arr) # [4,2,1] arr = [4,3,2,1] arr.remove(min(arr)) pr.. 2023. 2. 1.
[프로그래머스] Level1 시저 암호(with python) https://school.programmers.co.kr/learn/courses/30/lessons/12926 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 내가 작성한 코드 def solution(s, n): s = list(s) a = '' for i in s: if ord(i) == 32: a += ' ' else: num = ord(i) if 90 >= num >= 65: if num + n > 90: a += chr(num + n - 26) else: a += chr(num + n) else: if num + n > 122: a += c.. 2023. 2. 1.
[프로그래머스] Level1 이상한 문자 만들기(with python) https://school.programmers.co.kr/learn/courses/30/lessons/12930 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 내가 작성한 코드 def solution(s): word = s.split(" ") a = '' for i in word: for j in range(len(i)): if j % 2 == 0: a += i[j].upper() else: a += i[j].lower() a += ' ' return a[:-1] 처음에 word = s.split()으로 구분을 하고, return 할 때 rstri.. 2023. 2. 1.
[백준] 1181번 단어 정렬(with python) https://www.acmicpc.net/problem/1181 1181번: 단어 정렬 첫째 줄에 단어의 개수 N이 주어진다. (1 ≤ N ≤ 20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문자열의 길이는 50을 넘지 않는다. www.acmicpc.net 1. 내가 작성한 코드 import sys n = int(sys.stdin.readline()) arr = [] for i in range(n): arr.append(sys.stdin.readline().strip()) b = sorted(set(arr), key = lambda x: (len(x),x)) for i in b: print(i) len(x)를 기준으로 한 번 정렬해주고, .. 2023. 2. 1.
#00 그 외 (계속 추가) 1. 문자열 부호 https://school.programmers.co.kr/learn/courses/30/lessons/12925 문자열 s를 숫자로 변환한 결과를 반환하는 함수를 구할 때 s속의 부호(+ or -)는 알아서 부호로 인식해주기 때문에 return int(string)으로 형변환만 해주면 된다. (굳이 -, + 빼서 숫자 앞에 넣을 필요 없음) 2. word = s.split() 문자열을 split 할 경우 알아서 list로 return 된다. 3. isupper, islower 4. 제곱수일 경우만 약수가 홀수개, 아니면 다 짝수개임 5. try except 할 때 EOFError : 입력값이 들어오지 않았을 때 break 처리 할 수 있다. 2023. 1. 31.
[백준] 11650번 좌표 정렬하기(with python) https://www.acmicpc.net/problem/11650 11650번: 좌표 정렬하기 첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 ≤ xi, yi ≤ 100,000) 좌표는 항상 정수이고, 위치가 같은 두 점은 없다. www.acmicpc.net 1. 내가 작성한 코드 import sys n = int(sys.stdin.readline()) arr = [] for i in range(n): arr.append(list(map(int,sys.stdin.readline().split()))) a = sorted(arr, key = lambda x:(x[0],x[1])) for i in a:.. 2023. 1. 31.
[프로그래머스] Level1 문자열 다루기 기본(with python) https://school.programmers.co.kr/learn/courses/30/lessons/12918 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 내가 작성한 코드 def solution(s): cnt = 0 if len(s) == 4 or len(s) == 6: for i in s: if i in ['0','1','2','3','4','5','6','7','8','9']: cnt += 1 else: pass if cnt == len(s): return True else: return False 사실 cnt를 안 쓰고 충분히 풀 수 있.. 2023. 1. 31.