For Programmer
1.그리디 알고리즘(탐욕법) - (2) 문제3,문제4 본문
728x90
문제3
정답코드
data = input() # 문자열데이터입력
result = int(data[0]) # 첫 번째 문자를 인트형으로 대입
for i in range(1,len(data)):
#두수중 하나라도 0혹은 1인 경우 곱하기보다는 더하기 수행
num = int(data[i])
if num <= 1 or result <= 1:
result += num
else:
result *= num
print(result)
나의 코드
data = input() # 문자열데이터입력
result = int(data[0]) # 첫 번째 문자를 인트형으로 대입
for i in range(1,len(data)):
#두수모두 1보다 클 경우 곱하기수행
if int(data[i]) > 1 and int(data[i-1]) > 1:
# int(data[i]) <= 1 or int(data[i=1] <= 0)
result *= int(data[i])
else:
result += int(data[i])
print(result)
문제4
정답 코드
N = int(input())
data = list(map(int,input().split()))
data.sort() #오름차순 정렬(제일중요)
result = 0 #총 그룹의 수
count = 0 #현재 그룹에 포함된 모험가의 수
for i in data: #공포도를 낮은 것 부터 하나씩 확인하며
count += 1 #현재 그룹에 해당 모험가를 포함시키기(현재 그룹의 사람 수)
if count >= i: # 현재 그룹에 포함된 모험가의 수가 현재의 공포도 이상이라면, 그룹 결성
result +=1 #총 그룹의 수 증가
count = 0 #현재 그룹에 포함된 모험가의 수 초기화
print(result)
나만의 코드
n = int(input())
data = list(map(int,input().split()))
data.sort() #오름 차순 정리
count = 0 #현재 그룹의 사람수
result =0 #총 그룹의 수
for i in range(data.__len__()): # for i in data 도 가능
count += 1 #현재 그룹에 사람수 한명 추가
if count == data[i]: # 만약 현재 사람수가 공포심하고 같다면
result += 1 # 총그룹의 수에 추가시키고
count = 0 #현재 그룹의 수는 초기화
print(result)
728x90
'코팅테스트 > 코딩테스트 이론 정리' 카테고리의 다른 글
4. 재귀 함수(Recursive Function) (0) | 2021.08.13 |
---|---|
3. 그래프 탐색 알고리즘 : DFS/BFS(스택과 큐) (0) | 2021.08.13 |
2. 구현(Implementation) 문제 (0) | 2021.08.13 |
2. 구현(Implementation) 이론 (0) | 2021.08.12 |
1.그리디 알고리즘(탐욕법) - (1) 이론 , 문제1, 문제2 (0) | 2021.08.11 |
Comments