일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- 코딩테스트
- malloc-lab
- html input
- 자바스크립트 문자열 변수
- Coding Test
- 회원가입
- 자바스크립트
- JavaScrpit
- PINTOS
- 프로그래머스
- python
- 리액트
- 백준
- 목록 창 만들기
- node.js
- React
- 템플릿 문자열
- conding test
- sw 정글
- dfsbfs
- HTML
- 사용자 정의 객체
- javascript
- sw정글사관학교
- SW정글
- Spring
- 정글sw
- Express
- onChange
- 회원가입 폼
Archives
- Today
- Total
코드치고 무게치고
[백준 python] 1105번 팔 - 그리디 본문
[백준 python] 1105번 팔 - 그리디
레벨: 실버1
언어: python
📑풀이 과정
이러한 문제는 예시를 몇개 넣어보면서 조건에 맞는것을 찾아보면 풀이 방법이 떠오른다.
핵심은 반드시 8이 들어가는 곳의 수를 찾아서 출력하면된다.
먼저 두 수의 자리수가 같은지 확인한다.
자리수가 다르면 무조건 0이 나올 수 밖에 없다.
ex) 8 10 -> 9나 10이 선택 됨으로 무조건 0이 나옴
그리고 자리수가 같을 때는 앞자리부터 확인한다.
이때 앞자리가 같으면서 8인 경우가 8이 꼭 들어가야만 하는 자리이다.
ex) 80 88 1개, 888 889 2개
앞 자리부터 공통으로 들어가는 8의 수를 확인
그리고 앞자리가 같으면서 8이 아닌 경우는 뒤에 8이 있는지 확인해야한다.
ex) 1878 1888 1개
위 경우 백의자리와 1의 자리가 8이지만 십의 자리가 달라 1879 ~ 부터 8이 1개인 수가 존재한다.
자리가 다른 숫자이면 비교를 멈추고 8의 개수를 출력하면된다.
📋풀이 코드
import sys
input = sys.stdin.readline
L, R = map(str, input().split())
print(L, R)
if len(L) != len(R):
print(0)
else:
cnt = 0
for i in range(len(L)):
if L[i] == R[i] and L[i] !='8':
continue
if L[i] == '8' and R[i] =='8':
cnt+=1
else:
break
print(cnt)
'개발공부 > 코딩테스트 준비' 카테고리의 다른 글
[백준 python] 1339번 단어 수학 - 그리디 (0) | 2022.03.10 |
---|---|
[백준 python] 19941번 햄버거 분배 - 그리디 (0) | 2022.03.10 |
[백준 python] 1246번 온라인 판매 (0) | 2022.03.05 |
[백준 python] 1449번 수리공 항승 - 그리디 (0) | 2022.03.05 |
[백준 python] 1049번 기타줄 - 그리디 (0) | 2022.03.04 |
Comments