| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- 자바스크립트
- 너비 우선 탐색
- 그리디 알고리즘
- 스택
- CSS
- 구현
- DFS
- lv2
- 브루트포스 알고리즘
- 그래프 탐색
- 백준
- 다이나믹 프로그래밍
- 그래프 이론
- 그래프이론
- 알고리즘
- BASIC
- 웹 프론트엔드
- DP
- level2
- 자료구조
- 프로그래머스
- web
- JavaScript
- 딕셔너리
- 프로그래머스스쿨
- 정렬
- 문자열
- BFS
- 파이썬
- programmers
- Today
- Total
목록전체 글 (85)
DevLog:-)
문제 코드 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=""(+=)의 차이 코멘트 문제를 한 번..
문제 코드 def solution(players, callings): idx = {i: player for i ,player in enumerate(players)} p = {player:i for i, player in enumerate(players)} for call in callings: loc = p[call] #호명한 선수의 등수 loc2 = loc-1 #앞 선수 등수 idx[loc] = idx[loc2] #선수:앞 선수 뒤로 보내기 idx[loc2] = call #선수:호명된 선수 앞으로 보내기 p[idx[loc]] = loc #등수:앞 선수 등수 낮추기 p[call] = loc2 #등수:호명된 선수 등수 올리기 return list(idx.values()) 리스트에서 호명된 선수의 위치와 ..
문제 코드 1. import sys A,B = sys.stdin.readline().strip().split() min = len(B) for i in range(len(B)-len(A)+1): count =0 for j in range(len(A)): if(A[j]!=B[i+j] and i+j count): min =count print(min) 2. import sys A,B = sys.stdin.readline().strip().split() answer =[] for i in range(len(B)-len(A)+1): count =0 for j in range(len(A)): if(A[j]!=B[i+j] and i+j < len(B)): count+..
문제 코드 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)로 변경하였다.
안드로이드 앱을 구현하면서 액티비티 간 intent를 사용하지 않고 데이터를 공유할 수 있는 방법이 있을까 찾아보던 중 SharedPreferences을 알게 되었다. 코드 구현이 비교적 간단해서 적절히 사용하면 편리하게 코드를 짤 수 있을 것이다! 1.SharedPreferences란? 간단한 키-값 쌍을 저장하고 관리하기 위한 유용한 메커니즘이다. SharedPreferences를 사용하면 앱 내에서 데이터를 영구적으로 저장하고 가져올 수 있다. 2.SharedPreferences 사용하기! -SharedPreferences 객체 생성하기 SharedPreferences sharedPreferences = getSharedPreferences("my_preferences", Context.MODE_P..
문제 코드 import sys n = 1000-int(sys.stdin.readline()) M = [500, 100, 50, 10, 5, 1] count = 0 for money in M: if n == 0: break count += n // money #금액이 큰 거스름돈 먼저 잔돈 개수 계산 n %= money print(count) 문제설명 잔돈의 개수가 최소가 되도록 해야 하는 문제이다. 접근방법 그리디 알고리즘을 사용한다. 코드설계 -액수가 큰 지폐를 최대한 많이 사용해야하기 때문에 가장 큰 잔돈 500부터 내림차순으로 M에 저장한 후 for문을 돌린다. -for문을 돌면서 money로 거스름돈을 나눈 몫(해당 잔돈 개수)을 결괏값에 더한다. -그 후에 남은 거스름돈을 계산하고 남은 거스름돈..
문제 안드로이드 스튜디오에서 버튼 색이 변하지 않을 때가 있다. 액티비티 스타일을 어떻게 설정했는가가 원인이 되기도 하는데 바로 색을 변경할 수 있는 간단한 방법이 있다. 해결방안 Button -> android.widget.Button 으로 코드를 변경하면 버튼 색이 변경되는 것을 확인할 수 있다!!
문제 코드 import sys from collections import deque n, k = map(int,sys.stdin.readline().strip().split()) def bfs(): q = deque() q.append(n) while q: v = q.popleft() if v == k: print(visited[v]) break for nv in (v - 1, v + 1, v * 2): if 0
문제 백준 1697-숨바꼭질 1697번: 숨바꼭질 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 www.acmicpc.net 오류 숨바꼭질 문제 코드를 다음과 같이 풀었다. 결론은 시간초과로 인한 실패...ㅠㅠ 계속 보다가 다른 분들의 코들 봤는데 알고리즘이 유사해 원인을 찾기 어려워 ChatGPT에게 물어봤다....🌟 나: 백준 1697 숨바꼭질 문제를 푸는데 시간초과로 실패했어 내 코드를 보고 원인을 찾아줘 아래는 내가 제출한 코드야~ import sys from collections import deque n,k = map(..
1.두날짜를 초단위로 변환을 한 후 원하는 단위로 바꿈으로써 차이을 쉽게 구할 수 있다. 2.getTime을 사용할 수 있다. Date.getTime은 Date를 밀리세컨드로 변환해서 long형 숫자 데이터로 반환한다. 1000밀리초는 1초 이므로 getTime()으로 구한 값을 1000으로 나누면 초단위의 값을 얻을 수 있다. 3.getTime() 후 반환값에서 다음과 같이 단위를 변경할 수 있다. 초 : /1000 분 : /(1000 * 10) 시 : /(1000 * 60 * 60) 코드 import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; public class main { public st..