프로그래머스 파이썬 기초 트레이닝 :: 특별한 이차원 배열 2 (list(map(list, zip(*arr))))

이미지
              문제 설명  프로그래머스 URL https://school.programmers.co.kr/learn/courses/30/lessons/181831 프로그래머스 코딩 카테고리  코딩 기초 트레이닝 Day 25 - 특별한 이차원 배열 2 Lv.0 문제 내용  n × n 크기의 이차원 배열 arr이 매개변수로 주어질 때, arr이 다음을 만족하면 1을 아니라면 0을 return 하는 solution 함수를 작성해 주세요. 0 ≤ i, j < n인 정수 i, j에 대하여 arr[i][j] = arr[j][i] arr1  : [[5, 192, 33], [192, 72, 95], [33, 95, 999]] result1 : 1  arr2  : [[19, 498, 258, 587], [63, 93, 7, 754], [258, 7, 1000, 723], [587, 754, 723, 81]] result2  : 0 문제 이해 일반방식) 이중 for문을 돌면서, arr[i][j] = arr[j][i] 이 값이 같은지 확인  zip함수) arr를 unpacking(*arr)하고, zip함수로 행,열 바꿈   ----------------------------------- 일반 코드  이중 for문으로 값 확인 def solution(arr): for i in range(len(arr)) : for j in range(len(arr)) : if arr[i][j] != arr[j][i] : return 0 return 1 위의 코드 간결version def solution(arr): return int(all(arr[i][j] == arr[j][i] for i in range(len(ar...

프로그래머스 파이썬 기초 트레이닝 :: 배열의 길이를 2의 거듭제곱으로 만들기

이미지
             문제 설명  프로그래머스 URL https://school.programmers.co.kr/learn/courses/30/lessons/181857 프로그래머스 코딩 카테고리  코딩 기초 트레이닝 Day 20 - 배열의 길이를 2의 거듭제곱으로 만들기 Lv.0 문제 내용  정수 배열 arr이 매개변수로 주어집니다. arr의 길이가 2의 정수 거듭제곱이 되도록 arr 뒤에 정수 0을 추가하려고 합니다. arr에 최소한의 개수로 0을 추가한 배열을 return 하는 solution 함수를 작성해 주세요. arr                                result [1, 2, 3, 4, 5, 6]      [1, 2, 3, 4, 5, 6, 0, 0] [58, 172, 746, 89]      [58, 172, 746, 89] 문제이해 1. 배열의 길이를 2의 제곱으로 만들어야함     -> len 활용하고, 2의 제곱확인은 len(arr) / 2 로 체크  2. 부족하다면, 부족한 만큼 [0]으로 채워야함      -> [0] * 부족한 배열길이 만큼      -> 배열 + 연산으로 부족한만큼 합치기  ----------------------------------- 코드 1 배열 길이만큼 바로 제곱하기 def solution(arr): a = 1 b = len(arr) while a < b : a *= 2 return arr + [0] * (a-b) while문을...

프로그래머스 파이썬 기초 트레이닝 :: 단순연산(+ * < >) 문제 모음

이미지
     문제들  Day-23 (5) 날짜 비교하기 Day-24 (4) l로 만들기 단순연산 대소비교 < , > 리스트, 문자열 추가 +, * ------------------------------------------------ Day- 23  (5) 날짜 비교하기 문제 설명  정수 배열 date1과 date2가 주어집니다. 두 배열은 각각 날짜를 나타내며 [year, month, day] 꼴로 주어집니다. 각 배열에서 year는 연도를, month는 월을, day는 날짜를 나타냅니다. 만약 date1이 date2보다 앞서는 날짜라면 1을, 아니면 0을 return 하는 solution 함수를 완성해 주세요. date1                     date2                     result [2021, 12, 28]                [2021, 12, 29]                1 [1024, 10, 24]                [1024, 10, 24]                0 날짜로 이뤄진 리스트를 대소비교 해야하는 문제  일반 코드  내가 처음에 푼 방식  def solution(date1, date2): for i in range(0,3) : if ...

프로그래머스 파이썬 기초 트레이닝 :: 빈 배열에 추가, 삭제하기 (리스트 단순연산)

이미지
               문제 설명  프로그래머스 URL https://school.programmers.co.kr/learn/courses/30/lessons/181860 프로그래머스 코딩 카테고리  코딩 기초 트레이닝 Day 19 - (3) 빈 배열에 추가, 삭제하기 Lv.0 문제 내용  아무 원소도 들어있지 않은 빈 배열 X가 있습니다.  길이가 같은 정수 배열 arr과 boolean 배열 flag가 매개변수로 주어질 때, flag를 차례대로 순회하며  flag[i]가 true라면 X의 뒤에 arr[i]를 arr[i] × 2 번 추가하고,  flag[i]가 false라면 X에서 마지막 arr[i]개의 원소를 제거한 뒤  X를 return 하는 solution 함수를 작성해 주세요. arr [3, 2, 4, 1, 3] flag [true, false, true, false, false] result [3, 3, 3, 3, 4, 4, 4, 4] ----------------------------------- 내가 푼 코드  for문으로 리스트 값 추가  리스트에 값을 추가할때 for문 - range 함수를 사용해서, 값을 삭제하거나 추가했다. def solution(arr, flag): x = [] for a, f in zip(arr, flag) : if f : for i in range(2*a) : x.append(a) else : for i in range(a) : x = x[:-1] # x.pop() return x for문으로 동일한 값을 n번 삭제 / 추가하는걸로 코드를 작성했는데  값은 값을 n번 ...

프로그래머스 파이썬 기초 트레이닝 ::문자열 replace 활용 문제 (Str.translate(str.maketrans('abcd', '----', del))

이미지
               활용 문제 1번  코딩 기초 트레이닝 Day 19 - (1) 세 개의 구분자  Lv.0 문제 내용  임의의 문자열이 주어졌을 때 문자 "a", "b", "c"를 구분자로 사용해 문자열을 나누고자 합니다. 예를 들어 주어진 문자열이 "baconlettucetomato"라면 나눠진 문자열 목록은 ["onlettu", "etom", "to"] 가 됩니다. 문자열 myStr이 주어졌을 때 위 예시와 같이 "a", "b", "c"를 사용해 나눠진 문자열을 순서대로 저장한 배열을 return 하는 solution 함수를 완성해 주세요. 단, 두 구분자 사이에 다른 문자가 없을 경우에는 아무것도 저장하지 않으며, return할 배열이 빈 배열이라면 ["EMPTY"]를 return 합니다. myStr                                    result "baconlettucetomato" ["onlettu", "etom", "to"] "abcd"                               ["d"] "cabab"                               ["EMPTY"] 문제 이해  a, b, c 세개의 구분자로 문자열을 짤라야 하는데 Str.split('a').split('b')...

파이썬 자료구조 :: set

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

프로그래머스 파이썬 기초 트레이닝 :: eval, join, map 함수 문제 모음

이미지
    문제들  Day-15 (4) 길이에 따른 연산 Day-21 (4) 문자열 정수의 합  Day-22 (2) 두 수의 합  map 함수  map(function, iterable, ...) 리턴값 : map 객체 (iterator)  function 대로 iterable을 실행시킴. eval 함수  eval(expression, globals=None, locals=None) 리턴값 : expression 실행 값  문자열로 받은 표현식을 실행시키는 역할  ------------------------------------------------ Day-15  (4) 길이에 따른 연산 문제 설명  정수가 담긴 리스트 num_list가 주어질 때, 리스트의 길이가 11 이상이면 리스트에 있는 모든 원소의 합을 10 이하이면 모든 원소의 곱을 return하도록 solution 함수를 완성해주세요. 일반 코드  내가 처음에 푼 방식  def solution(num_list): mul = 1 if len(num_list) >= 11 : return sum(num_list) else : for i in num_list : mul *= i return mul eval, join, map 함수 리스트 값을 문자열로 변환(map)하고, 합쳐서(join), 조건에 맞춰 수식계산(eval) def solution(num_list): if len(num_list) >= 11 : return eval('+'.join(map(str, num_list))) else : return eval('*'.join(map(str, num_list))) 일반 코드로도 실행이 되지만 eval, join, map 코드에 익숙해져...

이 블로그의 인기 게시물

KT 에이블스쿨 : 6-7차 미니프로젝트 - 제안서 기반 솔류션 기획 및 설계

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

쿠팡 제품