일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 부트캠프
- SWEA
- 비전공자
- 우테코 프리코스
- 코테
- 취뽀
- 우테코
- 마이스터고
- 13기
- 정처기
- 개발자
- 삼성청년SW아카데미
- 우테코 7기
- dfs
- 코딩테스트
- 삼성
- 삼성 부트캠프
- 삼성 청년 sw아카데미
- UML
- 파이썬
- SSAFY
- 싸피 13기
- 코딩
- 싸피
- 정보처리기사
- 삼성 청년 SW 아카데미
- 디자인패턴
- 백준 2003
- 프리코스
- 백준
Archives
- Today
- Total
룰루코딩
SWEA D3 1220. [S/W 문제해결 기본] 5일차 - Magnetic 본문
문제
https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV14hwZqABsCFAYD
SW Expert Academy
SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!
swexpertacademy.com
솔루션
for t in range(1, 11):
N = int(input())
lst = []
for _ in range(N):
lst.append(list(map(int, input().split())))
ans = 0
for j in range(N):
state = 0
for i in range(N):
if lst[i][j] == 1:
state = 1
elif lst[i][j] == 2 and state == 1:
ans += 1
state = 0
print(f"#{t} {ans}")
깨달은 점
어렵게 생각했는데 열로 순회하도록 바꾼 후에 state를 저장하여 1과2가 만났을때 교착상태 개수를 세어주면 되는 문제였다.
ans = 0 # 교착 상태의 개수를 저장할 변수
for j in range(T): # 열(세로) 순회
state = 0 # 상태를 초기화 (N극에서 시작)
for i in range(T): # 행(가로) 순회
if lst[i][j] == 1: # N극(1)을 만난 경우
state = 1
elif lst[i][j] == 2 and state == 1: # S극(2)을 만난 경우
ans += 1 # 교착 상태 발생
state = 0 # 상태 초기화
'SWEA' 카테고리의 다른 글
SWEA D3 4615. 재미있는 오셀로 게임 (0) | 2024.11.16 |
---|---|
SWEA 5653. [모의 SW 역량테스트] 줄기세포배양 (5) | 2024.11.16 |
SWEA D3 1234. [S/W 문제해결 기본] 10일차 - 비밀번호 (2) | 2024.11.15 |
SWEA D3 1230. [S/W 문제해결 기본] 8일차 - 암호문3 (3) | 2024.11.15 |
SWEA D3 1229. [S/W 문제해결 기본] 8일차 - 암호문2 (0) | 2024.11.15 |