업그레이트 (UpGreate)

- 威武不屈


  • Home

  • Categories

  • About

  • Archives

  • Tags

  • Search

python_인자,가변인자

Posted on 2019-08-27 | In LANGUAGE

인자, 가변인자

스코핑 룰

변수를 찾는 규칙으로 LGB 순으로 검색한다.

함수내부 →→→→→ 함수외부 →→→→→ 파이썬 자체
지역   전역, 외부   내장
(Local)   (Global)   (Build-in)

※ 가변인자나 정의 되지 않은 인자를 사용할 때는 * 또는 **를 사용한다.
### *는 여러 인자를 받을때 사용하고
###

**는 대체로 딕셔너리를 저장할때 사용한다.
###

예시

1
2
3
4
5
def calc(a,b):
  return a+b,a*b
  
args=(1,2)
calc(*args)
Read more »

SW Expert Academy - D2_2005

Posted on 2019-08-27 | In ALGORITHM

D2_2005. 파스칼의 삼각형

문제:

  • 크기가 N인 파스칼의 삼각형을 만들어야 한다.

  • 파스칼의 삼각형이란 아래와 같은 규칙을 따른다.

  • \1. 첫 번째 줄은 항상 숫자 1이다.

  • \2. 두 번째 줄부터 각 숫자들은 자신의 왼쪽과 오른쪽 위의 숫자의 합으로 구성된다.

  • N이 4일 경우,

    img

  • N을 입력 받아 크기 N인 파스칼의 삼각형을 출력하는 프로그램을 작성하시오.

입력:

  1. 테스트 케이스 T
  2. 각 테스트 케이스에는 N이 주어진다.
  3. 파스칼의 삼각형의 크기 N은 1 이상 10 이하의 정수이다. (1 ≤ N ≤ 10)

출력:

ex)

#1 1 1 1 1 2 1 1 3 3 1

생각한 로직:

  • 문제에서 말하는 것처럼 순서대로 파스칼의 삼각형 뜻대로 구현

코딩:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
for tc in range(1,int(input())+1):
    N=int(input())
    result = [[1]]
    #한줄 한줄씩
    for i in range(1,N):
        #한줄 만들어 저장할 공간
        tmp=list()
        for j in range(i+1):
            #처음과 마지막을 제외한 구간에서는 파스칼의 삼각형 원칙대로 되어야 하니
            if 0<j<i:
                tmp.append(result[i-1][j]+result[i-1][j-1])
            #이외에는 1을 추가해준다.
            else:
                tmp.append(1)
        #다 만들어진 한줄 한줄을 삼각형에 추가시켜 놓는다.
        result.append(tmp)
    print("#{}".format(tc))
    for item in result:
        print(*item)
Read more »

python_lambda, Pass, __doc__, help, 이터레이터 객체

Posted on 2019-08-26 | In LANGUAGE

lambda, Pass, __doc__, help, 이터레이터 객체

  • lambda : 이름 없는 함수 만들 때
  • pass : 아무것도 하지 않고 넘어 갈때
  • __doc__ : 생성한 함수에 설명을 추가하고 싶을 때
  • 이터레이터 객체 : 순회가능한 형식에서 값을 안전하고 빠르게 나열하고 싶을 때

※ 이터레이터 객체란?

순회가능한 객체의 요소를 순차적으로 열거하는 객체이다.

리스트, 튜플, 문자열 처럼 순회 가능한 시퀀스를 구현한다.

Read more »

SW Expert Academy - D2_2001

Posted on 2019-08-26 | In ALGORITHM

D2_2001. 파리 퇴치

문제:

N x N 배열 안의 숫자는 해당 영역에 존재하는 파리의 개수를 의미한다.

아래는 N=5 의 예이다.

img

M x M 크기의 파리채를 한 번 내리쳐 최대한 많은 파리를 죽이고자 한다.

죽은 파리의 개수를 구하라!

예를 들어 M=2 일 경우 위 예제의 정답은 49마리가 된다.

img

입력:

  1. 테스트 케이스 T
  2. 케이스 별로 N, M
  3. N줄에 거쳐 N*N 배열이 주어진다.

출력:

ex)

#1 5 #2 7 #3 6

생각한 로직:

  • N*N 배열을 0~N-M 까지 순회하면서 각 자리에서 0~M-1까지 탐색해 다 더한 값들 중 최대값을 찾는다.
  • O(N^2)

코딩:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
def findM(arrlist,M,y,x):
    global result
    tmp=0
    for i in range(M):
        for j in range(M):
            tmp+=arrlist[y+i][x+j]
    if tmp > result:
        result = tmp


for tc in range(1,int(input())+1):
    N,M = map(int,input().split())
    arrlist = [list(map(int,input().split())) for x in range(N)]
    result = 0
    #N사이즈의 배열을 순회
    for row in range(N-M+1):
        for col in range(N-M+1):
            #row,col 위치에서 파리채 사이즈 만큼 죽은 파리 수를 확인하는 함수
            findM(arrlist,M,row,col)
    print("#{} {}".format(tc,result))
Read more »

python_예외처리

Posted on 2019-08-25 | In LANGUAGE

예외처리

try except

  • 실행에러로 코드 중단 방지 때 사용한다.
1
2
3
4
BaseException:
    Zerodivisionerror
    TypeError
    Indexerror
Read more »
1 … 15 16 17 … 32
Sik

Sik

156 posts
7 categories
30 tags
RSS
© 2021 Sik
Powered by Jekyll
Theme - NexT.Muse