파이썬2021. 4. 16. 01:12
728x90

* 6096

codeup.kr/problem.php?id=6096

 

[기초-리스트] 바둑알 십자 뒤집기(py)

python언어기초100제v1.0 : @컴퓨터과학사랑, 전국 정보(컴퓨터)교사 커뮤니티/연구회 - 학교 정보(컴퓨터)선생님들과 함께 수업/방과후학습/동아리활동 등을 통해 재미있게 배워보세요. - 모든 내용

codeup.kr

#이중배열
d = [[0 for j in range(20)] for i in range(20)]

#19줄 입력
for i in range(19): #0~19
    d[i]=input().split()
#    print(d[i])

n=int(input())
#print(n)

for i in range(n):
    x,y=map(int,input().split())
    x-=1
    y-=1
    for j in range(20):
        #y 먼저 뒤집기
        if d[j][y]==0:
            d[j][y]=1
        else:
            d[j][y]=0

        #x 나중에 뒤집기
        if d[x][j]==0:
            d[x][j]=1
        else:
            d[x][j]=0

print('ok')

 

 

반응형
Posted by mminky
기타2021. 4. 14. 20:54
728x90

휴대가 간편한 휴대폰 거치대를 찾던 도중
이 받침대를 발견했다!
대충 휴대폰을 대보니 사이즈가 괜찮을 것 같아서 실험삼아 사보았는데 대성공이었다👏👏



총 4개나 들어있다고 한다👍



장점은
1. 휴대 간편, 가볍다
2. 휴대폰 길이에 무관하게 좁게 넓게 가능
(단, 일정 간격 이상 안 벌어지기는 한다)


각도도 나름 괜찮은 것 같다 ◡̈
강의나 영상볼 때 유용항 것 같다!



탭도 되지않을까 해서 살포시 얹어봤는데
아무래도 휴대폰보다는 무게가 나가기 때문에 약간 불안했다..
(그래도 넘어져도 뒤에 기댈 곳이 있다면 나쁘지 않은 것 같다!)
한 번은 휘청했지만 결론적으로 아래 사진처럼 괜찮은 것 같다!



휴대가 간편해서 잘 쓸 것 같다!
단점이라면
1. 태블릿정도로 무거우면 불안정할 수 있다
2. 플라스틱이다보니 부서질 수 있다
이정도인데 1000원에 4개라면 사볼 만 한 것 같다 ◡̈

끝!

반응형
Posted by mminky
파이썬2021. 4. 14. 15:08
728x90

[ 원래 코드 ]

 

a,b,c=map(int,input().split())
num=0

for i in range(0,a):
    for j in range(0,b):
        for k in range(0,c):
            print(i,j,k)
            num+=1

print(num)

 

-> 시간초과에러가 발생했다..

심지어 정답 코드랑도 동일하던데..

답변에는 새벽시간에 내라, 정답의 복잡도는 O(N^3)이다 이런 말 밖에 없었다..

 


 

[ 고친 코드 ]

print()함수는 한 번 실행되는 시간이 오래 걸리기 때문에 시간초과가 걸렸다고 한다.

그래서 다음과 같이 string에 결과를 추가해서 마지막에 한 번 출력하는 방향으로 진행했다. (@ji.o.n.e의 도움으로..)

 

a,b,c=map(int,input().split())
num=0
answer=''

for i in range(0,a):
    for j in range(0,b):
        for k in range(0,c):
            answer+=str(i)+' '+str(j)+' '+str(k)+'\n'
            num+=1

print(answer,num,sep='')

 

 

[ 결과 ]

 

그래도 여전히 시간이 많이 걸리기는한다.

아무튼 해결!!

 

 

[ Code Up 해당 문제 ]

codeup.kr/problem.php?id=6083

 

[기초-종합] 빛 섞어 색 만들기(설명)(py)

python언어기초100제v1.0 : @컴퓨터과학사랑, 전국 정보(컴퓨터)교사 커뮤니티/연구회 - 학교 정보(컴퓨터)선생님들과 함께 수업/방과후학습/동아리활동 등을 통해 재미있게 배워보세요. - 모든 내용

codeup.kr

 

※ 제 글이 도움이 되었다면 공감 부탁드려요 :)

반응형
Posted by mminky
파이썬2021. 4. 14. 14:13
728x90

* 16진수 입력받기, 16진수 구구단

- 16진수 입력int(n,16) 이렇게 int의 두 번째 인자에 원하는 진수를 적으면 된다.
- 16진수 출력print('%X' %n) 으로 할 수 있다. 이는 n의 값을 X로 16진수로 변환해서 출력한다는 의미이다.

[ 코드 ]

n=input() n=int(n,16) for i in range(1,16): # '%X'는 16진수로 출력한다는 의미 # sep=''을 추가하면 공백 없이 출력됨(B*4=2C) print('%X' %n, '*%X' %i, '=%X' %(n * i), sep='')



[ 결과 ]
B를 입력하면 다음과 같이 B의 15단이 나온다 :)

(참고) codeup.kr/problem.php?id=6081



* 한 번에 정수로 받기
'2 4 5'이렇게 input()으로 받으면 문자로 받아집니다.
일일이 int()형으로 변경해줘야 하는데 변수가 많아지면 귀찮습니다.
한 번에 변환하기 위해서는 map을 이용하면 됩니다 :)

[ 코드 ]
input().split()으로 공백있는 문자열을 입력받습니다.
그리고 그 각각을 int로 맵핑시켜서 a, b, c에 각각 넣어줍니다.

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


[ 결과 ]

a,b,c=map(int,input().split()) print(a,b,c) print(a+b)


2와 4가 int형이기 때문에 a+b를 했을 때 6이 나옵니다. (문자라면 24가 나옴)




* 파이썬 자리수 조정(소수점 조절)
소수 둘째자리까지 표현할 때

round(숫자,2)


[ 이용 코드 ]

h,b,c,s=map(int,input().split()) val=h*b*c*s byte=val/8 mb=byte/1024/1024 print(mb,"MB") print(round(mb,1),"MB")


[ 결과 ]
round를 이용하면 원하는 소수 점 까지 표현이 가능한 것을 알 수 있다.


* 수열문제
처음에는 range(1,n+1)해서 n번 계산을 했다.
하지만 수열은 n-1번째 계산한 값이 n번째 값임을 기억하자!

그리고 만약 n==1이라면 초기값인 a가 나와야 하므로 마지막에 print(a)를 해줬다.
또한 이전 값을 이용해야 하므로 a=answer을 넣어서 돌렸다.

[ 코드 ]

a,m,d,n = map(int,input().split()) #수열은 n-1번 계산해야 n번째 값이 나옴 range(1,n) for i in range(1,n): answer=a*m+d a=answer print(a)


[ 결과 ]


(참고 ) codeup.kr/problem.php?id=6090


※ 제 글이 도움이 되었다면 공감 부탁드려요 :)

반응형
Posted by mminky
파이썬2021. 4. 12. 15:09
728x90

* 리스트 추가

.append()

 

* 리스트 원소 삭제

.pop

.remove

del

 

 

* 리스트 슬라이싱

 

1) 이용방법

 

이렇게 이용하면 (시작)~(끝-1)까지의 항목들이 담긴다.

리스트명[시작:]

 

이런 리스트가 있다고 가정해보자.

n_list = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]

n_list=[]
for i in range(15):
    n_list.append(i)

print(n_list)

 

* 0에서 4까지 분할

[0, 1, 2, 3, 4]

s_list1=n_list[0:5]
print(s_list1)

 

 

2) 간격

 

리스트명[시작::간격]

 

* 간격2로 분할

[2, 4, 6, 8, 10]

#간격 (2부터 11까지 2 간격)
s_list4=n_list[2:11:2]
print(s_list4)

 

 

3) 역순

 

리스트명[시작::-1]

 

* 역순 출력

[10, 9, 8, 7, 6]

#역순출력 (10부터 6까지 역순으로)
s_list5=n_list[10:5:-1]
print(s_list5)

 

* 역순, 간격 2

[10, 8, 6, 4, 2]

#10부터 2까지 역순, 간격2
s_list6=n_list[10:1:-2]
print(s_list6)

 

 

반응형
Posted by mminky
파이썬2021. 4. 7. 14:18
728x90

* 리스트 내 모든 원소

 

리스트 내에 모든 원소에 대해 돌리고 싶은 코드는 다음과 같이 매우 편리하게 이용할 수 있다.

for 아무거나 in 리스트:

 

예를 들어 record라는 리스트의 각 항목에 대해 if문을 적용하고 싶으면

for ch in record: 를 한 후 if(ch=='h'): 이런 식으로 적용하면 된다 :)

 

[ 적용코드 ]

with open('shooting.inp','r') as f:
    record=f.readline()
    #print(record)

score=0
before_record='o'
#연속된 h의 개수를 세기 위한 h_num
h_num=0

#record 리스트 내 모든 원소에 대해서
for ch in record:
    #연속 h h
    if(ch=='h' and before_record=='h'):
        h_num+=1
        score+=h_num #연속 된 h개수만큼 score추가
        

...(생략)...

 

 

 

* 0이 들어올 때 까지 출력하기

 

[ 코드 ]

#일부러 초기값을 0이 아닌 값으로 설정
n=-1

while n!=0:
    n=int(input())
    if n!=0:
        print(n)

 

[ 입력 ]

7 4 2 3 0 1 5 6 9 10 8

 

 

[ 출력 ]

7 4 2 3

(초록색 8은 입력의 8임)

 

[ 참고 ]

codeup.kr/problem.php?id=6071

 

 

반응형
Posted by mminky
파이썬2021. 4. 5. 13:47
728x90

[ 로그 찍기 ]

코드가 너무 복잡하면 잘 돌아가는 지 헷갈리다.

예를 들어 i와 s가 잘 동작하는 지 확인하기 위해서는 다음의 코드로 print 해서 확인 할 수 있다.

print('i={},s={}'.format(i,s))

 

[ 전체코드 ]

s=0
for i in range(1,11):
    s=s+i
    print('i={},s={}'.format(i,s))
print('1에서 10합:', s)

 

[ 결과 ]

반응형
Posted by mminky
파이썬2021. 4. 2. 12:45
728x90

[ 문제 ]

다음의 파일의 내용을 띄어쓰기를 기준으로 읽어들인 후

리스트에 저장해서 정렬 후

각 값을 a, b, c에 저장하고자 한다.

2.inp 내용

 

[ 주요 요점 ]

 

* 문자열.split()을 하면 파이썬에서는 리스트로 변환된다.

 

with open('2.inp','r') as f:
    f_line=f.readline() #파일 한 줄 읽어오기
    f_list=f_line.split() #그 줄을 list에 저장
    print(f_list)

 

문자열 리스트로 출력됨

 

 

* 문자열 리스트(f_list) 를 정수 리스트로 변환

f_list=list(map(int,f_list))
print(f_list)

 

정수 리스트로 출력됨

 

 

* 리스트 정렬

f_list.sort()
print(f_list)

 

정렬 된 정수 리스트로 출력됨

 

 


[ 전체 코드 ]

with open('2.inp','r') as f:
    f_line=f.readline() #파일 한 줄 읽어오기
    f_list=f_line.split() #그 줄을 list에 저장

    #정수list로 변환
    f_list=list(map(int,f_list))

    #a<b<c 정렬
    f_list.sort()

	#a,b,c에 각 값을 저장
    a= f_list[0]
    b= f_list[1]
    c= f_list[2]
    
    #결과 출력
    print(str(a)+' '+str(b)+' '+str(c))

 

[ 결과 ]

출력이 잘 되었다 :)

 

 

반응형
Posted by mminky