https://github.com/tony9402/baekjoon

 

GitHub - tony9402/baekjoon: 코딩테스트 대비 문제집(Baekjoon Online Judge)

코딩테스트 대비 문제집(Baekjoon Online Judge). Contribute to tony9402/baekjoon development by creating an account on GitHub.

github.com

https://github.com/VSFe/Algorithm_Study

 

GitHub - VSFe/Algorithm_Study: This repository consists of materials for those preparing for coding tests and algorithm intervie

This repository consists of materials for those preparing for coding tests and algorithm interviews. - GitHub - VSFe/Algorithm_Study: This repository consists of materials for those preparing for c...

github.com

 

'알고리즘 공부 > 파이썬 개념' 카테고리의 다른 글

코드업 6097번 문제  (0) 2022.01.26
코드업 100제 [파이썬] 51-100제  (0) 2022.01.24
코드업 100제 [파이썬] 1-50제  (0) 2022.01.23
TypeError: 'int' object is not subscriptable
h,w = map(int,input().split()) #5 5
n = int(input()) #3

d=[]
for i in range(h):
    d.append([])
    for k in range(w):
        d[i].append(0) 

for count in range(n):
    l, d, x, y = map(int, input().split())
    x=x-1
    y=y-1 #0 1 2 3 4 범위로 바꿈
    
    for j in range(l):
        if(d == 0):
            d[x][y+j] = 1   
        else:
            d[x+j][y] = 1
            

for i in range(h):
    for k in range(w):
        print(d[i][k], end=' ')
    print()

분명 맞게 짠 코드 같은데 자꾸 에러가 나서 뭘까 고민했는데 

오류내용은 인덱스를 갖지 않는 값에 인덱스를 가지게 코드를 짤 경우 발생하는 오류였다.

변수 d도 선언하고 리스트 이름도 d로 선언했기 때문에 충돌이 나서 그랬던 것 같다..!

 

리스트명을 board로 바꿔줬더니 잘 작동이 됐다!

앞으로는 에러가 난다면 변수명도 꼼꼼히 보는 습관을 들이자

h,w = map(int,input().split()) #5 5
n = int(input()) #3

board=[]
for i in range(h):
    board.append([])
    for k in range(w):
        board[i].append(0) 

for count in range(n):
    l, d, x, y = map(int, input().split())
    x=x-1
    y=y-1 #0 1 2 3 4 범위로 바꿈
    
    for j in range(l):
        if(d == 0):
            board[x][y+j] = 1   
        else:
            board[x+j][y] = 1
            

for i in range(h):
    for k in range(w):
        print(board[i][k], end=' ')
    print()

 

a = bool(int(input())) -> input( ), int( ), bool( ) 순서로 한 번에 한 단계씩 계산/처리/평가된다.

참 또는 거짓의 논리값을 역(반대)으로 바꾸기 위해서 not 예약어(reserved word, keyword)를 사용할 수 있다.

정수값 0은 False 이고, 나머지 정수 값들은 True 로 평가된다.

 

** 비트단위(bitwise)연산자는,
~(bitwise not), &(bitwise and), |(bitwise or), ^(bitwise xor),
<<(bitwise left shift), >>(bitwise right shift)
가 있다.

 

2의 보수 방법을 코드로 쉽게 구현할 수 있다!

~n = -n - 1
-n = ~n + 1 과 같은 관계로 표현할 수 있다.

a = 1
print(~a) #-2가 출력된다.

 

3개의 요소로 이루어지는 3항 연산은 아래와 같은 형태다.
=> C는 조건식, C가 참일 경우 x, 거짓일 경우 y

x if C else y

 

print('%X'%n)    #n에 저장되어있는 값을 16진수(hexadecimal) 형태로 출력

 

파이썬은 가독성을 중시하는 언어이므로 증감연산자 ( ++, -- )는 사용할 수 없다!

=> 그대신 i += 1 또는 i -= 1이 사용될 수 있다!

 

글자들을 이어붙이기 (sep)

print('p', 'y', 't', 'h', 'o', 'n', sep='')
python

 

print문 이어붙이기 (end)

print("안녕", end='/')
print("하세", end='/')
print("요", end='/')
안녕/하세/요

 

'알고리즘 공부 > 파이썬 개념' 카테고리의 다른 글

공부하기 유용한 사이트!  (0) 2022.02.17
코드업 6097번 문제  (0) 2022.01.26
코드업 100제 [파이썬] 1-50제  (0) 2022.01.23

출처: https://codeup.kr/problemsetsol.php?psid=33 

 

문제집 / Python 기초 100제

 

codeup.kr

 

a = input()
n = int(a)            #입력된 a를 10진수 값으로 변환해 변수 n에 저장
print('%x'% n)  #n에 저장되어있는 값을 16진수(hexadecimal) 소문자 형태 문자열로 출력

print('%X' % n)  #n에 저장되어있는 값을 16진수 대문자 형태 문자열로 출력

 

a = input()
n = int(a, 16)      #입력된 a를 16진수로 인식해 변수 n에 저장
print('%o' % n)  #n에 저장되어있는 값을 8진수(octal) 형태 문자열로 출력

 

n = ord(input())  #입력받은 문자를 10진수 유니코드 값으로 변환한 후, n에 저장한다.

 

c = int(input())
print(chr(c))  #c에 저장되어 있는 정수 값을 유니코드 문자(chracter)로 바꿔 출력한다. 

 

아스키문자표에서 'A'는 10진수 65로 저장되고 'B'는 10진수 66으로 저장된다.
따라서, 문자도 값으로 덧셈을 할 수 있다. 어떤 문자의 값에 1을 더하면 그 다음 문자의 값이 된다.

 

format(수, ".2f") 를 사용하면 원하는 자리까지의 정확도로 반올림 된 실수 값을 만들어 준다.

여기서 만들어진 값은 소수점 아래 3번째 자리에서 반올림한 값이다.

 

나눗셈 연산자

/ : 정확히 나누어 떨어지지 않는 경우 소수점 15자리까지 표현한다

// : 소수점 부분은 버리고 몫만 표현한다

 

int()함수는 안에 문자열이 들어와야 한다. 그런데 아래 코드는 배열이 드러오기 때문에 오류가 뜨게 된다.

a, b = int(input().split(' '))
print(a)

 

비트 쉬프트 연산자

n = 10
print(n<<1)  #10을 2배 한 값인 20 이 출력된다.
print(n>>1)  #10을 반으로 나눈 값인 5 가 출력된다.
print(n<<2)  #10을 4배 한 값인 40 이 출력된다.
print(n>>2)  #10을 반으로 나눈 후 다시 반으로 나눈 값인 2 가 출력된다.

 

a = 2
b = 10
print(a << b)  #2의 10승 = 1024 가 출력된다.

 

** 10, 10.0 , 0o10 , 0xf 는 모두 10진수로 인식된다.

n = 10 으로 작성해 넣으면 자동으로 10진수 정수 값으로 저장된다.

n = 10.0 으로 작성해 넣으면 자동으로 10진수 실수 값으로 저장된다.
n = 0o10 으로 작성해 넣으면 8진수(octal) 10으로 인식되어 10진수 8값이 저장되고,
n = 0xf 나 n = 0XF 으로 작성해 넣으면 16진수(hexadecimal) F로 인식되어 10진수 15값으로 저장된다.

 

파이썬 map 함수

a,b= map(int , input().split(' '))

자바스크립트 map 함수

a,b= map(input().split(' ').map((el) => { return parseInt(el) })

'알고리즘 공부 > 파이썬 개념' 카테고리의 다른 글

공부하기 유용한 사이트!  (0) 2022.02.17
코드업 6097번 문제  (0) 2022.01.26
코드업 100제 [파이썬] 51-100제  (0) 2022.01.24

+ Recent posts