Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
Tags
- 코드트리
- 폰 잃어버렸을때
- 삼성 싸피 지원
- 싸피 11기
- 싸피 혜택
- SSAFY
- 싸피 지원자격
- 폰 찾기
- 싸피 모집설명회
- 갤럭시 위치추적
- 코딩테스트실력진단
- 정보처리기사 준비물
- 정처기 인강 추천
- 학생메일
- 정처기 후기
- LG 서비스센터 영업시간
- 봄 노래
- 정처기 실기
- 삼성 싸피
- #코드트리 #코딩테스트 #코딩테스트실력진단
- 싸피 모집설명회 다시보기
- 정보처리기사 실기
- gram 액정 교체
- 그램 액정 교체비용
- 싸피 추천인
- 폰 위치추적
- 인디노래 추천
- 폰 도난
- 싸피 추천코드
- 코딩테스트
Archives
- Today
- Total
포포's 코딩&일상 기록
[코드트리챌린지] 8회차 본문
실력진단


완전탐색문제 - 틀림.. ]




n= int(input())
arr=[]
#주어진 격자 생성
for _ in range(n):
arr.append(list(map(int,input().split())))
#말의 위치
r,c= map(int,input().split())
r,c= r-1,c-1
#출력용 격자
arrPrint = [[0 for _ in range(n)] for _ in range(n)]
#탐색용
di= [1,-1,0,0,1,1,-1,-1]
dj =[0,0,1,-1,1,-1,1,1]
qu = [(r,c)]
#탐색
while qu: #큐안에 뭔가 있을동안 계속 탐색
r,c= qu.pop(0) #킹의 위치
arrPrint[r][c] =1 # 값을 1로 변경
#상하좌우 탐색해서 0이면 큐안에 넣기
for k in range(len(di)):
a,b=r+di[k], c+dj[k]
if 0 <= a < n and 0 <= b < n:
if arr[a][b] ==0:
qu.append((a,b))
arr[a][b] = -1 #방문표시
#출력
for i in range(n):
print(*arrPrint[i],sep=" ")

재귀 문제
n= int(input())
arr= [0 for _ in range(n)]
#재귀 함수
#현재상태
def f(idx): # 0~ (idx-1) 까지는 탐색했고
# idx 부터 (n-1) 까지 조건에 맞게 탐색할 함수
# 종료조건 : 0~ (n-1)까지 탐색했다면 출력 후 종료
if idx ==n:
if (co(3) >= co(2) >=co(1)):
print(*arr,sep="")
return
#재귀 탐색
for i in range(1,4):
arr[idx] = i #설정
f(idx+1) # 탐색
arr[idx] = 0 #복구
#개수 세는 함수
def co(num):
cnt =0
for elem in arr:
if elem == num:
cnt +=1
return cnt
f(0) #함수호출
공부한내용 1
코드트리 | 코딩테스트 준비를 위한 알고리즘 정석
국가대표가 만든 코딩 공부의 가이드북 코딩 왕초보부터 꿈의 직장 코테 합격까지, 국가대표가 엄선한 커리큘럼으로 준비해보세요.
www.codetree.ai


내가짠 코드
#배열 두개
twoList = [[] for _ in range(2)]
#각 배열 저장
for i in range(2):
li =[]
#각 배열 하나 - 3줄로 구성
for _ in range(3):
arr = list(map(int,input().split()))
li.append(arr)
twoList[i]=li
if i ==0:
input() # 간격이 하나주어짐... -> 날려버려야됨..
# 배열 곱하기
gop=[[1 for _ in range(3)] for _ in range(3)]
for i in range(3):
for j in range(3):
gop[i][j]= twoList[0][i][j] * twoList[1][i][j]
# 배열 출력
for i in range(3):
for j in range(3):
print(gop[i][j],end=" ")
print()
주의할점
입력으로 빈 엔터키도 하나 주어진다... 걔를 날려줘야함..
참고

여기선 for 문없이 arr1, arr2 각각 정의하였다..
& 리스트 컴프리헨션을 이용해서.. 인풋받자마자 바로 리스트 만듦... <- 이건 배울점!!!
중간에 빈칸은 input()으로 받아줬다...
# 첫 번째 2차원 배열을 구현해 정수를 입력받습니다.
arr_1 = [
list(map(int, input().split()))
for _ in range(3)
]
input()
# 두 번째 2차원 배열을 구현해 정수를 입력받습니다.
arr_2 = [
list(map(int, input().split()))
for _ in range(3)
]
# 2차원 배열을 구현합니다.
arr_3 = [
[0 for _ in range(3)]
for _ in range(3)
]
# 두 배열의 곱을 새로운 배열에 담습니다.
for i in range(3):
for j in range(3):
arr_3[i][j] = arr_1[i][j] * arr_2[i][j]
# 새로운 배열을 출력합니다.
for row in arr_3:
for elem in row:
print(elem, end=" ")
print()
공부한 내용 2
https://www.codetree.ai/missions/4/problems/compare-two-grid?&utm_source=clipboard&utm_medium=text
코드트리 | 코딩테스트 준비를 위한 알고리즘 정석
국가대표가 만든 코딩 공부의 가이드북 코딩 왕초보부터 꿈의 직장 코테 합격까지, 국가대표가 엄선한 커리큘럼으로 준비해보세요.
www.codetree.ai


내가짠 코드
n,m =map(int,input().split())
# 격자 받기
arrList= [ [list(map(int,input().split())) for _ in range(n)] for _ in range(2)]
#print(arrList)
#동일값 찾기
findArr=[[0 for _ in range(m)] for _ in range(n)]
for i in range(n):
for j in range(m):
####3print(arrList[0][i][j], arrList[1][i][j],arrList[0][i][j] == arrList[1][i][j])
if arrList[0][i][j] == arrList[1][i][j]:
findArr[i][j] = 0
####print(True)
else:
findArr[i][j] = 1
####print(False)
####print(findArr[i][j])
####print(findArr)
#출력 -> 출려문에 뭔가 문제..
for i in range(n):
###for i in range(m): # i,j 구분잘하기...
for j in range(m):
print(findArr[i][j],end=" ")
print()
#코드트리 #코딩테스트 #코딩테스트실력진단