본문 바로가기
컴퓨터공학 언어/Python

Algorithm 공부하다 알게된 내용

by KChang 2021. 10. 26.

1. 입력할 때

  • a, b =input().split() : 공백을 기준으로 입력된 값들을 나누어 자른다.
  • n = ord(input()) : 입력받은 문자를 10진수 유니코드 값으로 변환한 후, n에 저장한다.
    • ord() : 어떤 문자의 순서 위치 값을 의미한다.
    • ord(c) : 문자 c를 10진수로 변환한 값
    • chr() : 정수값 -> 문자
    • ord() : 문자 -> 정수값
  • a = bool(int(input())) : 한 단계씩 계산/처리/평가
  • xor
    • a, b = input().split()
      c = bool(int(a))
      d = bool(int(b))
      print((c and (not d)) or ((not c) and d))
      
  • 숫자인지 판단할 때
    • 변수.isdigit()
      
  • 16 진수 입력 하기
    • n = int(input(), 16)
      
  • n = int(input()) : 개수를 입력받아 n에 정수를 저장
  • a = input().split() : 공백을 기준으로 잘라 a에 순서대로 저장
  • map을 사용하여 정수로 변환하기 (실수일 때는 float)
    • a, b = map(int, input('숫자 두 개를 입력하세요: ').split())
      
  • map을 사용하여 입력받은 값을 콤마를 기준으로 분리하기
    • a, b = map(int, input('숫자 두 개를 입력하세요: ').split(',')) # 입력받은 값을 콤마를 기준으로 분리
      
  • map을 사용하여 입력받은 값을 list로 저장하기
    • list_array = list(map(int,input().split()))
      
      ## 2차원 배열, list에 저장
      array = [[0] * 20 for i in range(20)]
      
      for i in range(1,20):
          array[i] = list(map(int,input().split()))
      
  • 2차원 배열 입력받기
    • array = [[0 for col in range(11)] for row in range(10)]
      
      • 열, 행 순으로 이중 for문 (행 : 10, 열 : 11)
    • array = [[0]*11 for i in range(10)]
      
    • 2차원 배열 [1][1] ~ [20][20] 까지 입력받기
      • list_data = [[0] * 20 for i in range(20)]
        
        for i in range(1,20):
            list_data[i][1:20] = list(map(int,input().split()))

 

2. 문자

  • 똑같은 문자 여러 번 출력하기
  • w, n = input().split()
    print(w*int(n))
    

 

3. 계산

  • 정수 몫을 구할 때는 : //
  • 소수 점 몫을 구할 때는 : /
  • 나머지 : %
  • 소수점 계산하기
    • print(format(a,".2f"))

 

4. 거듭제곱

  • 2 << 10 : 2^10 = 1024

 

5. 비트단위

  • 비트 단위 not 하여 출력하기
  • 비트 단위로 1 -> 0, 0 -> 1로 바꾼 후 그 값을 10진수로 출력
    • ~ : tilde, 틸드
    • & : ampersand(and), 비트단위 연산자
    • ~n = -n - 1
      -n = ~n + 1
      
      n = input()
      print(~int(n))
      
      print(3&5)
      
  • 비트 단위 연산자
    • ~(bitwise not), &(bitwise and), |(bitwise or), ^(bitwise xor), <<(bitwise left shift), >>(bitwise right shift)
  • xor : ^
  • or : |

 

6. 값 비교

1) 한 줄로 두 변수 중 큰 값 반환

c = (a if (a>=b) else b)

2) 가장 작은 값

min(a,b,c)

3) 짝수만 출력하기

None : 빈 값, null

def odd(n):
    if n % 2 == 0:
        return n

a, b, c = input().split()
a = int(a)
b = int(b)
c = int(c)

if odd(a) != None: print(a)
if odd(b) != None: print(b)
if odd(c) != None: print(c)

 

7. 반복문

1) range

  • range(끝)
  • range(시작, 끝)
  • range(시작, 끝, 증감)

2) sep=''

  • 공백없이 모두 붙여 출력된다.

3) 이차원 배열 list 만들기

  • d = []  # 대괄호 []를 이용해 아무것도 없는 빈 리스트 만들기
    
    for i in range(20):
        d.append([])  # 리스트 안에 다른 리스트 추가해 넣기
        for j in range(20):
            d[i].append(0)   # 리스트 안에 들어있는 리스트 안에 0 추가해 넣기
    
    n = int(input())
    for i in range(n):
        x, y = input().split()
        d[int(x)][int(y)] = 1
    
    for i in range(1, 20):
        for j in range(1, 20):
            print(d[i][j], end=' ') # 공백을 두고 한 줄로 출력
        print()
    

 

8. List

한 줄에 여러 숫자가 입력되어 있을 때, List에 저장하기

n = int(input())
list_data = []

list_data = input().split()
print(list_data[0])

list 길이 알고 싶을 때, len(list)

 

9. 라이브러리

'컴퓨터공학 언어 > Python' 카테고리의 다른 글

내부 함수, reduce 함수  (0) 2021.10.27
iterator, generator  (0) 2021.10.27
Module과 Package  (0) 2021.10.15
함수  (0) 2021.10.15
문자열  (0) 2021.10.15

댓글