이 문제는 백준 16053 A->B문제와 유사하다. 그 문제에서는 숫자로 되어있었고 이 문제는 문자열로 이루어져있다. 따라서 연산을 거꾸로 해서 풀어주면 된다. 풀이 1. 맨 끝이 A라면 pop해서 빼준다. 2. 맨 끝이 B라면 pop해서 빼주고 뒤집어준다. 3. 1,2번을 반복했을 때 S와 T가 같으면 ans=1로 해주고 while문에서 빠져나간다. S = list(input()) T = list(input()) ans = 0 while T: if S == T: ans = 1 break if T[-1] == 'A': T.pop() elif T[-1] == 'B': T.pop() T.reverse() print(ans)
풀이 1. 무한루프 안에서 B가 짝수이면 B를 2로 나눈다. 동시에 cnt++ 2. B를 10으로 나눴을 때 나머지가 1이라면 10으로 나눠준다. 동시에 cnt++ 3. 만약 A == B이라면 cnt+1해주고 break걸어 cnt 출력 4. A > B라면 B는 연산을 통해 A가 될 수 없으므로 cnt = -1 후 break, cnt 출력 5. 위의 조건문이 충족하지 않으면 else를 줘서 cnt = -1값으로주고 break하게 했다. 이 문제는 처음에 보고 쉽다고 풀었는데 계속 틀렸다고 떠서 너무 짜증이 났다. 맞는데 계속 안돼서 알아낸 것이 else문을 줘야한다는 점이다! A, B = map(int, input().split()) cnt = 0 while True: if A == B: cnt += 1 ..
import sys sys.stdin = open('input.txt') T = int(input()) for tc in range(1, T+1): N = int(input()) cnt = 0 lst = [list(map(int, input().split())) for i in range(N)] #교차하는 케이스는 2개 #A1Y2일 때 교차 #A1>A2 이고 Y1 lst[j][1]: cnt += 1 elif lst[i][0] > lst[j][0]: if lst[i][1] < lst[j][1]: cnt += 1 ##########행렬로 했더니 런타임에러########### # N = int(input()) # cnt = 0 # arr = [[0] * 10000 for _ in range(10001)] # ..
코드 알고리즘 1.계속해서 4분할을 한다 2.길이가 2가 되면 더이상 분할할 수 없기 때문에 여기서 작은 사각형에서 왼쪽위->오른쪽위->왼쪽아래->오른쪽아래 (Z모양 순서)순서로 cnt +=1 해주며 찾아준다. cnt = 0 def func(a,x,y): global cnt if a == 2: if x == r and y == c: #왼쪽 위 print(cnt) return cnt += 1 if x == r and y + 1 == c: #오른쪽 위 print(cnt) return cnt += 1 if x+1 == r and y == c: # 왼쪽아래 print(cnt) return cnt += 1 if x+1 == r and y+1 == c: #오른쪽 아래 print(cnt) return cnt += 1..
T = int(input()) for tc in range(1, T+1): N,M = list(map(int,input().split())) pizza = list(map(int,input().split())) cheese = [] for i in range(M): cheese.append([i+1,pizza[i]]) #리스트에 인덱스와 함께 치즈 값 넣어주기 # print(cheese) in_pizza = cheese[:N] #화덕에 N개만 넣을 수 있음 remain_pizza = cheese[N:] while len(in_pizza) > 1: #하나만 남으면 중단 check = in_pizza.pop(0) #일단 맨앞 피자 꺼냄 check[1] //= 2 #check[1]인 이유는 [0]이면 인덱스 ..
T = int(input()) for tc in range(1, T + 1): str_input = list(input().split()) result = [] print('#{}'.format(tc),end=' ') for i in range(len(str_input)): if str_input[i].isdigit() == True: result.append(int(str_input[i])) if str_input[i] == '.': if len(result) != 1: print('error') break print(result.pop()) break if str_input[i] == '+' : if len(result) == 1 or len(result) == 0: print('error') bre..
T = int(input()) for tc in range(1,1+T): words = list(input()) temp = [words[0]] #일단 첫번째 문자를 받아서 temp리스트에 넣어준다 cnt = 1 #cnt는 문자를 몇개 넣었는지 temp안에 있는 개수 for i in range(1, len(words)): #인덱스 1부터 끝까지 돌면서 비교 if temp == words[i:i+cnt]: break temp.append(words[i]) cnt += 1 # print(temp) print('#{} {}'.format(tc, len(temp)))
- Total
- Today
- Yesterday
- Python
- Java
- 위클리챌린지2주차
- 독학
- 트리
- SSAFY퇴소
- SSAFY
- django
- 프로그래머스
- vue.js
- vue
- 자바
- SWEA
- DOM
- 비동기패턴
- commit되돌리기
- git
- splide
- SQL
- 파이썬
- 안드로이드스튜디오
- N과M
- Pyhton
- 알고리즘
- 싸피
- 백준
- 배포
- 세션 스토리지
- AWS
- javascript
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |