'알고리즘 공부 > 파이썬 개념' 카테고리의 다른 글
코드업 6097번 문제 (0) | 2022.01.26 |
---|---|
코드업 100제 [파이썬] 51-100제 (0) | 2022.01.24 |
코드업 100제 [파이썬] 1-50제 (0) | 2022.01.23 |
코드업 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()
공부하기 유용한 사이트! (0) | 2022.02.17 |
---|---|
코드업 100제 [파이썬] 51-100제 (0) | 2022.01.24 |
코드업 100제 [파이썬] 1-50제 (0) | 2022.01.23 |
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
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 |