일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- BASIC
- 구현
- 그리디 알고리즘
- JavaScript
- BFS
- 정렬
- 프로그래머스스쿨
- 스택
- 그래프 탐색
- DP
- 딕셔너리
- 파이썬
- 문자열
- CSS
- 그래프이론
- 자료구조
- 백준
- lv2
- 다이나믹 프로그래밍
- 알고리즘
- 자바스크립트
- 프로그래머스
- programmers
- DFS
- 너비 우선 탐색
- 브루트포스 알고리즘
- level2
- 그래프 이론
- web
- 웹 프론트엔드
- Today
- Total
목록구현 (10)
DevLog:-)

문제 코드 import sys M = int(input()) a = [0,1,2,3] for _ in range(M): x, y = map(int, input().split()) a[x], a[y] = a[y], a[x] print(a.index(1)) 코멘트 a [x], a [y] = a [y], a [x] 이렇게 한 번에 코드를 쓰면 tmp 없이 값 교차시킬 수 있다!

문제 코드 while(1): n = int(input()) while(n>9): n = sum(map(int,list(str(n)))) print(n) if n == 0: break 123 숫자→”123” 문자열 →[”1”,”2”,”3”] 리스트 → 1,2,3 숫자리스트→sum합 → n에 담김 ⇒반복합니다.👍

코드 n = int(input()) for i in range(n, 0, -1): print(' '*(n-i) + '*'*(2*i-1))

문제 코드 import sys eng = 'abcdefghijklmnopqrstuvwxyz' num = [] s = sys.stdin.read() for i in eng: num.append(s.count(i)) m = max(num) for i in range(len(num)): if m == num[i]: print(chr(i+97), end = '') #chr(97) = 'a' # 아스키코드에 해당되는 문자로 변환 코멘트 문제 이해 가장 많이 나온 문자를 출략하면 되는 문제이다. 접근 방식 알파벳을 담은 문자열을 만들고 입력받은 문자열에 몇 개씩 들어있는지 순서대로 num 리스트에 append 한다. 가장 많은 숫자가 들어있는 num의 인덱스를 아스키토드를 이용해서 문자로 변환 후 출력한다. -sy..

문제 문제 이해 로봇청소기가 벽이 아닌 구간을 돌아다니며 청소를 하는 문제이다. 방의 크기/청소기 위치, 청소기 방향이 주어지고 벽은 1, 빈칸은 0으로 된 N*M 값을 받게 된다. 아래와 같이 로봇 움직임의 규칙이 나와있는데 이에 대한 이해와 숙지가 굉장히 중요한 거 같다. 현재 칸이 아직 청소되지 않은 경우, 현재 칸을 청소한다. 현재 칸의 주변 4$4$칸 중 청소되지 않은 빈 칸이 없는 경우, 바라보는 방향을 유지한 채로 한 칸 후진할 수 있다면 한 칸 후진하고 1번으로 돌아간다. 바라보는 방향의 뒤쪽 칸이 벽이라 후진할 수 없다면 작동을 멈춘다. 현재 칸의 주변 4$4$칸 중 청소되지 않은 빈 칸이 있는 경우, 반시계 방향으로 90∘$90^\circ$ 회전한다. 바라보는 방향을 기준으로 앞쪽 칸이..

문제 코드 def solution(s): answer = [] d = {a:-1 for a in s} for i in range(len(s)): if(d[s[i]]==-1): answer.append(-1) else: answer.append(i-d[s[i]]) d[s[i]]=i return answer 코멘트 딕셔너리를 이용해서 이전 단어의 위치와 해당 위치의 차를 구해 answer에 append하였다.

문제 코드 def solution(name, yearning, photo): d = {name:score for name,score in zip(name,yearning)} answer=[] print(d) for i in photo: sum =0 for j in i: if j in d: sum+=d[j] answer.append(sum) return answer 코멘트 딕셔너리를 이용하여 코드를 작성했다. 딕셔너리에 이름과 추억 점수를 넣어서 바로 점수 계산을 할 수 있도록 했다. 주의할 점은 if j in d: 코드를 작성해줘야 한다는 것이다. (안 해서 오류가 발생했었다.😅) 사진 속에 딕셔너리에 있지 않은 사람이 있음을 주의하자!

문제 코드 import sys N,M = map(int,sys.stdin.readline().strip().split()) arr = [] for i in range(N): arr.append(list(map(str,sys.stdin.readline().strip()))) answer='' sum =0 for i in range(M): map ={"A":0, "C":0,"G":0 ,"T":0} for j in range(N): map[arr[j][i]] +=1 m = max(map,key=map.get) answer+=m sum += (N- map[m]) map.clear print(answer) print(sum) #answer=[](append)와 answer=""(+=)의 차이 코멘트 문제를 한 번..

문제 코드 import sys arr = sys.stdin.readline().strip() A = "z"*len(arr) for i in range(1,len(arr)-1): for j in range(i+1,len(arr)): a = arr[:i][::-1] b = arr[i:j][::-1] c = arr[j:][::-1] B =a+b+c if(A>B):A=B #A =min(A,B) print(A) 발생한 오류 제출 후 발생한 오류는 range의 범위로 인한 오류였다. range(0, len(arr)-1)로 두었고 반복문이 0부터 시작하니까 첫 번째 문자를 고려하지 않는 오류가 발생했다. 따라서 range(1,len(arr)-1)로 변경하였다.

문제 코드 import sys def x(s,n): if(s ==')'): return 2*n elif(s==']'): return 3*n def check(s): stack = [] for i in s: sum =0 if i =='(': stack.append(')') elif i =='[': stack.append(']') #열린 괄호 들어오면 stack에 닫힌 괄호 넣음 elif not stack: return 0 elif stack[-1] == i: stack.pop() if i ==')': stack.append('2') else: stack.append('3') elif stack[-1] != ')'and stack[-1]!=']': if(i not in stack): return 0 whil..