'Python' 카테고리의 글 목록 (4 Page)
본문 바로가기
반응형

Python74

[프로그래머스 ] 문자열 내 마음대로 정렬하기 / 파이썬 문자열 내 마음대로 정렬하기 문제 설명 문자열로 구성된 리스트 strings와, 정수 n이 주어졌을 때, 각 문자열의 인덱스 n번째 글자를 기준으로 오름차순 정렬하려 합니다. 예를 들어 strings가 ["sun", "bed", "car"]이고 n이 1이면 각 단어의 인덱스 1의 문자 "u", "e", "a"로 strings를 정렬합니다. 제한 조건 strings는 길이 1 이상, 50이하인 배열입니다. strings의 원소는 소문자 알파벳으로 이루어져 있습니다. strings의 원소는 길이 1 이상, 100이하인 문자열입니다. 모든 strings의 원소의 길이는 n보다 큽니다. 인덱스 1의 문자가 같은 문자열이 여럿 일 경우, 사전순으로 앞선 문자열이 앞쪽에 위치합니다. 입출력 예 stringsnret.. 2021. 6. 21.
[프로그래머스] 시저 암호 파이썬 python 시저 암호 문제 설명 어떤 문장의 각 알파벳을 일정한 거리만큼 밀어서 다른 알파벳으로 바꾸는 암호화 방식을 시저 암호라고 합니다. 예를 들어 "AB"는 1만큼 밀면 "BC"가 되고, 3만큼 밀면 "DE"가 됩니다. "z"는 1만큼 밀면 "a"가 됩니다. 문자열 s와 거리 n을 입력받아 s를 n만큼 민 암호문을 만드는 함수, solution을 완성해 보세요. 제한 조건 공백은 아무리 밀어도 공백입니다. s는 알파벳 소문자, 대문자, 공백으로만 이루어져 있습니다. s의 길이는 8000이하입니다. n은 1 이상, 25이하인 자연수입니다. 입출력 예 snresult "AB" 1 "BC" "z" 1 "a" "a B z" 4 "e F d" 파이썬 나의 코드 : def solution(s, n): a = 'abcde.. 2021. 6. 20.
[프로그래머스 ] 콜라츠 추측/ while, 재귀함수 파이썬 콜라츠 추측 문제 설명 1937년 Collatz란 사람에 의해 제기된 이 추측은, 주어진 수가 1이 될때까지 다음 작업을 반복하면, 모든 수를 1로 만들 수 있다는 추측입니다. 작업은 다음과 같습니다. 1-1. 입력된 수가 짝수라면 2로 나눕니다. 1-2. 입력된 수가 홀수라면 3을 곱하고 1을 더합니다. 2. 결과로 나온 수에 같은 작업을 1이 될 때까지 반복합니다. 예를 들어, 입력된 수가 6이라면 6→3→10→5→16→8→4→2→1 이 되어 총 8번 만에 1이 됩니다. 위 작업을 몇 번이나 반복해야하는지 반환하는 함수, solution을 완성해 주세요. 단, 작업을 500번을 반복해도 1이 되지 않는다면 –1을 반환해 주세요. 제한 사항 입력된 수, num은 1 이상 8000000 미만인 정수입니다.. 2021. 6. 20.
[프로그래머스] 이상한 문자 만들기(파이썬 오류나는 이유) 프로그래머스 Level 1 이상한 문자 만들기 이상하게 분명 test는 통과하는데 혼자 돌려본 테스트도 다 통과인ㄷ ㅔ !!! 문제 제출만 하면 오류가나서 31%? 정도밖에 점수가 나지 않는다. 아무리 봐도 이상할게 없는데....... 질문하기 섹션에서 뭔가 놓친게 있나 보는데 어떤 분이 split() 으로 쓰면 안되고 split(' ') 으로 써야 한다고 팁을 전수 ! 바로 실행해보니 통과했다.. (°ロ°) 나의 코드 def solution(s): a = s.split(" ") b = '' for i in a: for j in range(len(i)): b += i[j].upper() if j%2==0 else i[j].lower() b += ' ' return b[:-1] 오류가 계속 난 이유 .sp.. 2021. 6. 20.
[Python]파이썬, 왜 리스트대신 큐/ 데크 deque 를 쓸까? Python deque deque 라는 것은 쉽게 말하자면 파이썬의 list 와 같이 요소들을 한 곳에 담아두는 배열이다. 파이썬에서 큐 queue는 First In First Out (FIFO) 의 방식으로 작동된다. 덱(데큐)는 큐는 큐이지만 양방향인 queue이다. 양 쪽 방향 모두에서 (앞, 뒤) 요소를 추가/ 제거할 수 있다. List도 있는데 굳이 deque를 사용하는 이유는 ? 간략하게 말하자면 List 보다 deque의 속도가 훨씬 빠르기 때문이다. list는 O(n) 의 속도, deque는 O(1)의 속도이다. 요기 표에서 보다시피 O(1)의 속도가 가 - 장 좋은 best 속도이다. 그게 바로 deque ! 연산이 많을수록 안쓸 이유가 없다. 처음 deque알고리즘을 풀어보며 왜 리스트.. 2021. 6. 17.
[Python] 파이썬 zip() 매서드 사용법 Python .zip() 매서드 매서드 풀이 zip() - 동일 개수로 이루어진 자료형을 묶어 주는 함수 zip -> zipper 지퍼처럼 각각 리스트에 있는 요소를 담아 지퍼로 잠가 보관하는 느낌 같다! 반환값 : 두 개 이상의 리스트의 값의 같은 인덱스 짝별로 묶어 튜플에 담아 반환 * 만약 인덱스 짝이 없다면 짝이 있는 부분만 return (나머지는 버려짐) 예제 1. 두 개의 리스트뿐만 아니라 여러개의 리스트도 인덱스, 짝이 맞으면 zip 으로 묶을 수 있다. d 의 경우 'D' 네번째 요소는 버려진다. (짝이 없기때문) a = [1,2,3] b = ['a','b','c'] c = ['*','*','*'] d = ['A','B','C','D'] print(zip(a,b)) print(list(zi.. 2021. 6. 16.
[백준] 2623번 음악 프로그램 / 위상 정렬 알고리즘 위상 정렬을 모르면 정말 풀기 힘든 문제이다. 유튜브 강의를 듣고 공부하고 참고해서 코드를 작성했다. 파이썬 코딩테스트 2주차, 처음 위상 정렬을 접해보니 정말 어려웠다. 요 개념은 따로 포스팅을 자세하게 하면서 공부해봐야겠다! 나의 코드 : from collections import deque node,count = map(int, input().split()) connected = [0]*(node+1) graph = [[] for _ in range(node+1)] #connected = 모든 노드에 대한 진입차수 0으로 초기화 #graph = 각 노드에 연결된 간선 정보를 담은 연결 리스트 초기화 #방향 그래프의 모든 간선 정보 입력 받기 for _ in range(count): A = list(.. 2021. 6. 16.
[python] 합집합, 교집합, 차집합, 대칭차, 다중 집합의 합집합, 교집합까지 총 정리 / 파이썬 중복 집합 python 포스팅 목차 1. 파이썬 리스트 합집합, 교집합, 차집합, 대칭차 정리 2. 파이썬 리스트 다중 집합의 합집합, 교집합 정리 3. 2018 카카오 블라인드 코딩테스트에 쓰인 다중 집합 합집합, 교집합 분석 2018년 kakao blind 코딩 테스트 문제 [ 1차 뉴스 클러스터링 ] 을 풀면서 다중 집합이라는 개념을 처음 알게되었다. 겸사겸사 공부겸 정리해보고 요 개념이 어떻게 코딩테스트에 나왔는지도 분석해보기 ! 아래 코드는 리스트를 기준으로 작성했지만 set을 기반으로 (?) 변형시킨 것이기 때문에 set의 합집합, 교집합, 차집합, 대칭차집합이라고 볼 수 있다. 1. Python, 파이썬 리스트 합집합, 교집합, 차집합, 대칭차 정리 합집합 list a와 b 를 set으로 중복을 제거하.. 2021. 6. 15.
[프로그래머스] 파이썬 [1차] 뉴스 클러스터링 / 2018 카카오 kakao blind 코딩 테스트 문제 풀이 문제 설명 뉴스 클러스터링 여러 언론사에서 쏟아지는 뉴스, 특히 속보성 뉴스를 보면 비슷비슷한 제목의 기사가 많아 정작 필요한 기사를 찾기가 어렵다. Daum 뉴스의 개발 업무를 맡게 된 신입사원 튜브는 사용자들이 편리하게 다양한 뉴스를 찾아볼 수 있도록 문제점을 개선하는 업무를 맡게 되었다. 개발의 방향을 잡기 위해 튜브는 우선 최근 화제가 되고 있는 "카카오 신입 개발자 공채" 관련 기사를 검색해보았다. 카카오 첫 공채..'블라인드' 방식 채용 카카오, 합병 후 첫 공채.. 블라인드 전형으로 개발자 채용 카카오, 블라인드 전형으로 신입 개발자 공채 카카오 공채, 신입 개발자 코딩 능력만 본다 카카오, 신입 공채.. "코딩 실력만 본다" 카카오 "코딩 능력만으로 2018 신입 개발자 뽑는다" 기사의 제.. 2021. 6. 14.
[Python] math.gcd & math.lcm 최대공약수 최소공배수 한번에 쉽게 구하기 지난번 유클리드 호제법을 이용해 파이썬으로 최대공약수, 최소공배수 구하는 포스팅을 썼었다. https://codingpractices.tistory.com/34 [Python] 최소공배수, 최대공약수란? 파이썬 알고리즘으로 쉽게 구현하기 / for문, 유클리드 호제법 최대공약수란 ? GCD (Greatest Common Divisor) Common Divisor -> 라는 이름에서 알 수 있듯이 두 수 혹은 그 이상의 여러 수의 공통인 약수 중, 최대인 것. 즉, 수들의 각각의 약수 중 공통이며 가장 큰 수를.. codingpractices.tistory.com 그런데 ! Math 함수를 통해 최대 공약수를 구하는 아주아주 쉬운 방법을 찾았다. mah.gcd 최대 공약수 구하기 Greatest Commo.. 2021. 6. 13.
[Python] 전역 변수 지역 변수 사용법 총 정리/ global, nonlocal Python, Global variable = 파이썬 전역 변수란 ? - Global scope, 전역 범위에서 활동하는 변수. 전역 범위란 함수를 포함하여 스크립트 전체에서 모든 요소에 해당 변수에 접근할 수 있도록 하는 것이 전역 변수이다. 위의 a 는 전역 변수이다. 실행하는 파이썬 전체 영역에서 사용할 수 있기 때문에 이름도 '전역'으로 전체 영역으로 생각하면 쉬울 것 같다. a = 1 이라고 전역변수 a를 첫 줄에 선언하고 그리고 함수 Fn 에서 해당 전역 변수 a의 값을 print 하라고 설정했다. 전역변수이므로 6, 7번 줄에서 모두 출력이 된다! 전역 변수의 범위 Python, Local variable = 파이썬 지역 변수란 ? - 지역 변수란 Local scope, 지역 범위에서만 영향.. 2021. 6. 13.
[백준] 10250번 파이썬 : ACM 호텔 /python 코드 1 : n = int(input()) for i in range(n): h,w,n = map(int,input().split()) a = n%h b = n//h+1 if a==0: a = h b -= 1 print(a*100+b) 코드 풀이 : h 높이, w 너비, n 몇 번째 손님인지 주어진다. a의 변수에 n%h 몇 번째 손님인 n을 높이로 나눈 나머지 값을 담고 b 변수에는 해당 나눈 몫에 +1을 해서 담는다 304호 라면 a = 3 b = 4 만약 n과 h가 딱 떨어지게 나눠지게되면 n 손님은 h 높이 (호텔의 꼭대기층) 을 배정받게 된다. 그럼 a 값이 0 이되니 a 가 ==0일 때 h로 값을 담고 b 에는 -1을 해준다. 그리고 a* 100 + b로 프린트 ! 코드 2 : n = int(.. 2021. 6. 11.
[백준 1712번] 파이썬 풀이 python 나의 코드 a,b,c = map(int,input().split()) print(-1 if b>=c else int(a/(c-b))+1) b와 c가 같거나 / b가 c보다 더 클 경우 , 아무리 많은 노트북을 만들어내도 고정비용때문에 손해이다. -> pint(-1) 2021. 6. 11.
[Python] 파이썬 문자열 공부 파이선 코딩테스트 공부하다가 문자열 문제에서 계속 막혀서 문자열이 문제구나 ! 생각되어 공부겸 정리해보기👩‍💻 문자열 기초 문자열은 ' ' 작은따옴표 안에 쓰거나 " " 큰 따옴표 안에 숫자 / 문자 / 기호를 쓰는 모든 것이 문자열이다. ' 로 시작하면 '로 끝나고 "로 시작하면 "로 끝나야 한다. 파이썬 문자열의 특징은 사칙연산 중 더하기, 곱하기가 된다는 것이다 ! # \뒤에 특수문자로 취급되지 않게 # 첫 따옴표 앞에 r을 붙이면 raw string 이 된다. print('C:\some\name') print(r'C:\some\name') print() print('여러 줄 편하게 쓰기 ') print('---') print(''' Usage: thingy [OPTIONS] -h Display t.. 2021. 6. 10.
[Python] 파이썬 리스트 [::] 사용법 예제 extended slices Python array [::] 용법 기본 구문 리스트 or 문자열[a:b:c] array/ string[a:b:c] 풀이 => index a 부터 index b까지 c 간격으로 배열을 만들어라 a = [0,1,2,3,4,5,6,7,8,9] print(a[0:6:2]) # [0,2,4] 리스트/ 문자열의 인덱스 0 번째부터 (6-1) 5번째(5)까지 2칸 간격으로 리스트를 만든다. 예제 - 리스트 a = [0,1,2,3,4,5,6,7,8,9] print(a[::1]) #처음부터 끝까지 하나씩 print(a[5::1]) # 5번째부터 끝까지 print(a[::2]) #처음부터 끝까지 두 칸씩 print(a[1::2]) #index 1번부터 끝까지 두 칸씩 print(a[::-1]) # 역순으로 print(.. 2021. 6. 9.
반응형