-
[Python] 6096 : 기초 리스트 바둑알 십자 뒤집기코딩테스트/CodeUp 2024. 5. 22. 09:37
https://codeup.kr/problem.php?id=6096&rid=0
[기초-리스트] 바둑알 십자 뒤집기(py)
python언어기초100제v1.0 : @컴퓨터과학사랑, 전국 정보(컴퓨터)교사 커뮤니티/연구회 - 학교 정보(컴퓨터)선생님들과 함께 수업/방과후학습/동아리활동 등을 통해 재미있게 배워보세요. - 모든 내용
codeup.kr
[my_code]
d = [[0]*20 for _ in range(20)] for i in range(19): a = list(map(int, input().split())) for j in range(19): d[i+1][j+1] = a[j] n = int(input()) for i in range(n): x, y = map(int, input().split()) for j in range(1, 20): if j != y: d[x][j] = 1 - d[x][j] if j != x: d[j][y] = 1 - d[j][y] for i in range(1, 20): for j in range(1, 20): print(d[i][j], end=' ') print()
[설명]
-
d = [[0 for j in range(20)] for i in range(20)] or d = [[0]*20 for _ in range(20)]
- 리스트컨프리헨션을 사용해서 20 x 20 크기의 2차원 배열 0으로 초기화
- d는 인덱스를 1부터 사용하기 20으로 설정
- 후자를 쓰는게 좀 더 직관적이다. (개인적의견)
for i in range(19): a = list(map(int, input().split())) for j in range(19): d[i+1][j+1] = a[j] for i in range(19): a = input().split() for j in range(19): d[i+1][j+1] = int(a[j])
- 시간복잡도
- 두 코드의 시간 복잡도는 O(38)로 동일하다.
- 아래 코드가 간결하고 직관적이다.(개인적의견)
- 위 코드
- i 를 19번 반복 ( 0~18)
- a 에 공백을 기준으로 입력받아 정수로 변환하여 리스트로 저장한다.
- j 를 19번 반복 ( 0~18 )
- d[0+1][0+1] = a[0]
- d[0+1][1+1] = a[1]
- 즉, d[1][1] ~ d[1][19] 까지 값을 채우고 d[2]d[1] ~d[2][19] 해서 d[19][19] 까지...
- 아래 코드도 위 코드와 동일하지만 다른 점만 작성
- 리스트 a 에 공백을 기준으로 입력받는다.
- int(a[j]) 로 문자열을 정수형으로 변환
- 예시
a = input().split() print(a) # 입력 1 2 3 4 5 # 출력 ['1', '2', '3', '4', '5']
n = int(input()) for i in range(n) : x,y= map(int,input().split()) for j in range(1, 20) : if d[j][y]==0 : d[j][y]=1 else : d[j][y]=0 if d[x][j]==0 : d[x][j]=1 else : d[x][j]=0 n = int(input()) for i in range(n): x, y = map(int, input().split()) for j in range(1, 20): if j != y: d[x][j] = 1 - d[x][j] if j != x: d[j][y] = 1 - d[j][y]
- 2가지의 코드 중 아래 코드가 간결함.( 개인적 생각)
- 위 코드
- 아래 코드
- j ! = y or j != x 일 때만 뒤집고
- 같으면 제외.
'코딩테스트 > CodeUp' 카테고리의 다른 글
[Python] 6098 기초-리스트 : 성실한 개미 (0) 2024.05.23 [Python] 6097 : 기초-리스트 설탕과자 뽑기 (0) 2024.05.22 [Python] 1412 : 알파벳 개수 출력하기 (0) 2024.05.20 [Python] 기초 100제 : 바둑판에 흰 돌 놓기 (0) 2024.04.22 [Python] CodeUp : 기초 100제 6,094 : 이상한 출석 번호 부르기3 (0) 2024.04.22 -