1월, 2024의 게시물 표시

프로그래머스 파이썬 기초 트레이닝 :: 첫 번째로 나오는 음수 (next, filter 활용)

이미지
           문제 설명  프로그래머스 URL https://school.programmers.co.kr/learn/courses/30/lessons/181896 프로그래머스 코딩 카테고리  코딩 기초 트레이닝 Day 12 리스트(배열) - 첫 번째로 나오는 음수 Lv.0 문제 내용  정수 리스트 num_list가 주어질 때, 첫 번째로 나오는 음수의 인덱스를 return하도록 solution 함수를 완성해주세요. 음수가 없다면 -1을 return합니다. num_list                                result [12, 4, 15, 46, 38, -2 , 15]                5 [13, 22, 53, 24, 15, 6]                 -1 ----------------------------------- 기본 코드    1. range(len(num_list))로 범위 설정한 방식  def solution(num_list): for i in range(len(num_list)): if num_list[i] < 0 : return i return -1 2. enumerate() 로 범위 설정한 방식 def solution(num_list): for i, v in enumerate(num_list) : if v < 0 : return i return -1...

프로그래머스 파이썬 기초 트레이닝 :: 문자 개수 세기(chr, ord, count 활용)

이미지
           문제 설명  프로그래머스 URL https://school.programmers.co.kr/learn/courses/30/lessons/181902 프로그래머스 코딩 카테고리  코딩 기초 트레이닝 Day 11 리스트(배열) - 문자 개수 세기  Lv.0 문제 내용  알파벳 대소문자로만 이루어진 문자열 my_string이 주어질 때, my_string에서 'A'의 개수, my_string에서 'B'의 개수,..., my_string에서 'Z'의 개수, my_string에서 'a'의 개수, my_string에서 'b'의 개수,..., my_string에서 'z'의 개수를 순서대로 담은 길이 52의 정수 배열을 return 하는 solution 함수를 작성해 주세요. my_string "Programmers" result [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 2, 0, 1, 0, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0] 문제 이해 아스키코드 변환, 문자 ↔ 숫자 변환하는 함수인 chr(), ord() 활용 문제 문자열 문자 확인은 in 멤버 연산자, 개수 세기는 count  chr(num) : 숫자를 문자로 변환 ord(char) : 문자를 숫자로 변환   ----------------------------------- 다양한 iterable 선언 방식    문자열  for i in  ' ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz ' for i in  'abcdefghijklmnopqrstuvwxyz'.upper()+'abcdefghijklmno...

프로그래머스 파이썬 기초 트레이닝 :: index, find 문제 모음 (str.rfind)

이미지
   문제들  Day-11  (5) 가까운 1 찾기 Day-12 (4) 2의 영역 Day-13  (3) 왼쪽 오른쪽 Day-17 (1) 특정 문자열로 끝나는 가장 긴 부분 문제 이해 리스트나 문자열에서 원하는 값을 찾기 위해서, index 메서드를 사용할 수 있다. index 메서드  list.index(value, start, stop) str.index(value, start, stop) 문자열이랑 리스트에서 사용 가능하고, 값을 이용해 인덱스를 추출하는 메서드 최초로 찾는 값, 딱 하나를 반환한다.  ------------------------------------------------ Day-11  (5) 가까운 1 찾기 코드 1  내가 처음에 푼 방식 : 새로운 리스트에 index 저장 def solution(arr, idx): tmp = [] for i, val in enumerate(arr[idx:]) : if val == 1 : tmp.append(i+idx) if len(tmp) : return min(tmp) else : return -1 arr[idx: ]로 시작 인덱스를 슬라이싱한 뒤, 새로운 리스트인 tmp에 인덱스를 (i+idx) 로 저장했다.  그 뒤에, min 함수를 써서 최솟값 인덱스 추출 위의 코드를 줄이면, 아래와 같음 def solution(arr, idx): tmp = [i+idx for i, val in enumerate(arr[idx:]) if val == 1] return min(tmp) if len(tmp) else -1 코드 2  list.index(value, start, stop) 메서드 쓰기  def solution(arr, idx): try : return a...

프로그래머스 파이썬 기초 트레이닝 :: in / not in 문제 모음

이미지
  문제들  Day-11   (3) 글자 지우기 Day-15   (3) 원하는 문자열 찾기  Day-17   (3) ad 제거하기 Day-19   (5) 무작위로 k개의 수 뽑기 Day-22   (4) 배열의 원소 삭제하기 Day-22   (5) 부분 문자열인지 확인하기 Day-23   (2) 꼬리 문자열 문제 이해 리스트에서 요소를 삭제할때, 4가지 방법이 있다. del list[idx], list.remove(value), list.pop(idx), 인덱스 슬라이싱 을 사용할 수 있다.  하지만, del 함수, remove 메서드, pop 메서드를 사용하면 삭제된 만큼 리스트의 인덱스가 변해서 for문에서 사용할때 원하는 결과값을 얻지 못할 수도 있다.   그래서 나는, 지우고자하는 값을 공백으로 바꿔서 인덱스를 유지하는 방법을 선택했는데, in / not in 멤버 연산자를 활용 해서 쉽게 푸는게 가능하다.  프로그래머스 기초 트레이닝 문제 중에서 not in / in 연산자로 해결하는 문제들을 한번에 정리해 보았다.  멤버 연산자 형태 value not in group  value in group  ------------------------------------------------ (in연산자랑 리스트의 활용도 유용하게 쓰여서, 추가함) if 조건문에서 today == 'a' or today == 'b' 처럼 값을 체크하는 경우를 in + list를 쓸수있다. ### 1. 처음에 한 코드 - '=='로 하나씩 체크 today = input('요일을 입력하세요(월, 화, 수, 목, 금, 토, 일) : ') if today == '토' or today == '일' : for k, v in icecream.items() : print(f'아...

파이썬 자료구조 :: 문자열 str

이미지
프로그래머스 기초 단계를 풀면서 자료구조가 많이 부족함을 느껴서 정리를 해볼려고 한다.  [문자열 str 정리편]

프로그래머스 파이썬 기초 트레이닝 :: 주사위 게임 3 (list - count, index, eval+join)

이미지
          문제 설명  프로그래머스 URL https://school.programmers.co.kr/learn/courses/30/lessons/181916 프로그래머스 코딩 카테고리  코딩 기초 트레이닝 Day 8 조건문, 문자열 - 주사위 게임 3  Lv.0 문제 내용  1부터 6까지 숫자가 적힌 주사위가 네 개 있습니다. 네 주사위를 굴렸을 때 나온 숫자에 따라 다음과 같은 점수를 얻습니다. 네 주사위에서 나온 숫자가 모두 p로 같다면 1111 × p점을 얻습니다. 세 주사위에서 나온 숫자가 p로 같고 나머지 다른 주사위에서 나온 숫자가 q(p ≠ q)라면 (10 × p + q)2 점을 얻습니다. 주사위가 두 개씩 같은 값이 나오고, 나온 숫자를 각각 p, q(p ≠ q)라고 한다면 (p + q) × |p - q|점을 얻습니다. 어느 두 주사위에서 나온 숫자가 p로 같고 나머지 두 주사위에서 나온 숫자가 각각 p와 다른 q, r(q ≠ r)이라면 q × r점을 얻습니다. 네 주사위에 적힌 숫자가 모두 다르다면 나온 숫자 중 가장 작은 숫자 만큼의 점수를 얻습니다. 네 주사위를 굴렸을 때 나온 숫자가 정수 매개변수 a, b, c, d로 주어질 때, 얻는 점수를 return 하는 solution 함수를 작성해 주세요. a b c d result 2 2 2 2 2222 4 1 4 4 1681 6 3 3 6 27 2 5 2 6 30 6 4 2 5 2 제한 사항 a, b, c, d는 1 이상 6 이하의 정수입니다. 문제 이해 [입력] a, b, c, d 주사위 굴렀을때 나오는 숫자 [출력] 5가지 경우에 따라 계산한 점수 값  1. 주사위 4개 값(p)이 모두 동일할때 : 1111 * p   2. 주사위 3개(p)가 동일하고, 1개(q)만 다를때 : (10 *...

프로그래머스 파이썬 기초 트레이닝 :: 간단한 논리연산 (논리연산자, 비트연산자 *)

이미지
          문제 설명  프로그래머스 URL https://school.programmers.co.kr/learn/courses/30/lessons/181917 프로그래머스 코딩 카테고리  코딩 기초 트레이닝 Day 8 조건문, 문자열 - 간단한 논리연산  Lv.0 문제 내용  boolean 변수 x1, x2, x3, x4가 매개변수로 주어질 때, 다음의 식의 true/false를 return 하는 solution 함수를 작성해 주세요. (x1 ∨ x2) ∧ (x3 ∨ x4) x1                x2           x3                 x4           result false           true           true           true           true true           false           false           false           false 문제 이해 [입력] boolean 변수 (x1, x2, x3, x4)  [출력] boolean 변수 (x1 ∨ x2) ∧ (x3 ∨ x4) 이 식을...

프로그래머스 파이썬 기초 트레이닝 :: 배열 만들기 2 (all, set, filter, in, 집합연산자 *)

이미지
         문제 설명  프로그래머스 URL https://school.programmers.co.kr/learn/courses/30/lessons/181921 프로그래머스 코딩 카테고리  코딩 기초 트레이닝 Day 7 반복문 - 배열 만들기 2 Lv.0 문제 내용  정수 l과 r이 주어졌을 때, l 이상 r이하의 정수 중에서 숫자 "0"과 "5"로만 이루어진 모든 정수를 오름차순으로 저장한 배열을 return 하는 solution 함수를 완성해 주세요. 만약 그러한 정수가 없다면, -1이 담긴 배열을 return 합니다. l           r           result 5           555           [5, 50, 55, 500, 505, 550, 555] 10           20           [-1] 제한 사항 1 ≤ l ≤ r ≤ 1,000,000 문제 이해 [입력] l 정수, r 정수 [출력] 리스트, 비었으면 -1  1. l부터 r까지 정수 (반복문)  2. 각 정수가 0, 5로 이뤄졌는지 확인 (if문)  3. 조건 만족하면 해당 정수 리스트에 저장 (if - 실행문) 4. 최종 리스트을 오름차순으로 정렬 (sort, sorted, reverse, [ : : -1])  5. 리스트 반환, 리스트가 비었으면 -1  ------------------------ [ all 함수 + 멤버 연산자 ] 활용하는 경우 정답 코드 def solution(l, r): res...

파이썬 자료구조 :: 리스트 list (*)

이미지
프로그래머스 기초 단계를 풀다보니 자료구조가 많이 부족해서 정리를 해볼려고 한다.  [ 리스트 list 정리편]

프로그래머스 파이썬 기초 트레이닝 :: 수열과 구간 쿼리 2 (list, sored *)

이미지
        프로그래머스 URL https://school.programmers.co.kr/learn/courses/30/lessons/181923 프로그래머스 코딩 카테고리  코딩 기초 트레이닝 Day 6 조건문, 반복문 - 수열과 구간 쿼리 2  Lv.0 문제 설명 정수 배열 arr와 2차원 정수 배열 queries이 주어집니다. queries의 원소는 각각 하나의 query를 나타내며, [s, e, k] 꼴입니다. 각 query마다 순서대로 s ≤ i ≤ e인 모든 i에 대해 k보다 크면서 가장 작은 arr[i]를 찾습니다. 각 쿼리의 순서에 맞게 답을 저장한 배열을 반환하는 solution 함수를 완성해 주세요. 단, 특정 쿼리의 답이 존재하지 않으면 -1을 저장합니다. arr                     queries                               result [0, 1, 2, 4, 3] [[0, 4, 2],[0, 3, 2],[0, 2, 2]] [3, 4, -1] 제한 사항 1 ≤ arr의 길이 ≤ 1,000 0 ≤ arr의 원소 ≤ 1,000,000 1 ≤ queries의 길이 ≤ 1,000 0 ≤ s ≤ e < arr의 길이 0 ≤ k ≤ 1,000,000 문제 이해 [입력] 정수 배열 arr / 2차원 정수배열 queries - 각원소는 [s, e, k]  [출력] 정수 배열 answer   1. queries 의 인덱스는 s, e, k 활용 가능 2. arr[]의 인덱스범위 = s부터 e까지 = arr[s:e +1 ]  3. k 값과 ...

이 블로그의 인기 게시물

[KT 에이블스쿨 - IT 트랜드] 국내외 AI 관련 규제

KT 에이블스쿨 : IT 인프라 (1일차~5일차) 공부 정리

KT 에이블스쿨 : 핀테크 아이디어 공모전