일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 소프티어 지도자동구축
- 백준
- 피아노체조 파이썬
- 소프티어 장애물인식프로그램
- 금고털이 파이썬
- jenkins
- 백준 A->B
- MongoDB
- CRUD
- 파이썬 평범한배낭
- 백준 피아노체조
- 도커 컨테이너
- 백준 예산
- 백준 전쟁 파이썬
- express mongodb
- 백준 등수매기기
- express
- 파이썬데이터분석라이브러리
- 등수매기기 파이썬
- 백준알파벳파이썬
- 1987파이썬
- 지도자동구축 파이썬
- 백준 점프
- MySQL완전삭제
- 백준 평범한배낭
- 장애물인식프로그램 파이썬
- 백준 전쟁-전투
- 백준 바이러스
- 백준 점프 파이썬
- 프로그래머스
- Today
- Total
목록Algorithms/소프티어 (7)
바위 뚫는중
2️⃣ 장애물 인식 프로그램 https://softeer.ai/practice/6282 💡 아이디어 DFS로 1을 발견하고, 상하좌우로 탐색하여 1을 또 발견하면 계속해서 카운트를 해주고, 상하좌우로 발견이 안되면 관둔다 각각의 구간별로 카운트를 해줘야하는데 이때 배열을 따로만들어서 길이를 세어주고, 초기화해주는 방식으로 풀이했다. 첨엔 숫자로 두고 했는데 자꾸 에러가 나서 구글링의 도움을 받았다. ✍🏻 풀이 n = int(input()) block = [] for i in range(n): block.append(list(map(int, input()))) def dfs(x,y): if x = n or y = n: return False if block[x][y] =..

2️⃣ 지도 자동 구축https://softeer.ai/practice/6280💡아이디어 공식세우고 대입해주면 되는 문제이다!아주 간단한 문제였는데, 내 생각보단 매우 오래걸렸다..크흠..📝 풀이import sysN = int(input())mac = [0] * 16mac[0] = 2for i in range(1, N+1): mac[i] = mac[i-1] + (2**(i-1)) print(mac[N]**2)
2️⃣ 금고털이 https://softeer.ai/practice/6288 루팡은 배낭을 하나 메고 은행금고에 들어왔다. 금고 안에는 값비싼 금, 은, 백금 등의 귀금속 덩어리가 잔뜩 들어있다. 배낭은 W ㎏까지 담을 수 있다. 각 금속의 무게와 무게당 가격이 주어졌을 때 배낭을 채울 수 있는 가장 값비싼 가격은 얼마인가? 루팡은 전동톱을 가지고 있으며 귀금속은 톱으로 자르면 잘려진 부분의 무게만큼 가치를 가진다. **제약조건 1 ≤ N ≤ 106인 정수 1 ≤ W ≤ 104인 정수 1 ≤ Mi, Pi ≤ 104인 정수 **입력형식 첫 번째 줄에 배낭의 무게 W와 귀금속의 종류 N이 주어진다. i + 1 (1 ≤ i ≤ N)번째 줄에는 i번째 금속의 무게 Mi와 무게당 가격 Pi가 주어진다. **출력형식..

2️⃣ GBC https://softeer.ai/practice/6270 💡 아이디어 구간은 100으로 고정이니 100개의 구간에서 각 구간별 스피드의 차이를 계산하여 풀이를 하였다. 처음에는 구간을 통째로 생각해서 아예 접근을 못했다 ㅜㅜ 1부터 100까지 각 칸마다 속도를 저장해서 빼주고, 그 차이가 가장 max인 것을 출력한다. 🖊️ 코드 import sys from collections import deque n, m = map(int, input().split()) part_speed = [0] * 101 dis_sum = 0 for i in range(n): # n만큼 거리와 속도를 받아온다 distance, speed = map(int, input().split()) # 현재위치부터 입력받은..
2️⃣ 전광판 https://softeer.ai/practice/6268 💡 아이디어 전광판 7개의 스위치를 시계방향으로 생각하여 모든 숫자별로 스위치 on = 1 off = 0 으로 두고 전과 후가 다르면 카운트를 증가시켜주는 식으로 풀었다. 📝 풀이 정답 풀이 dict로 각각의 전광판에 필요한 수를 1과 0으로 (on 1 off 0)두고 정말 열심히 풀었으나, 표현해야 하는 실제 0과 애시당초 비어있는 0을 어떻게 구분해야하지? 라는 늪에 빠져 문제를 끝까지 해결하지 못했다. 구글링을 통해 알아보니 len을 이용하여 숫자가 나오기 전 앞은 모두 비어있도록 설정하여 문제를 풀면됐다 import sys input = sys.stdin.readline info = { '0' : '1110111', '1' ..
3️⃣ 성적평균 https://softeer.ai/practice/6294 💡 아이디어 누적하고 나누어서 풀었다 📝 풀이 ('{:.2f}'.format(round(ans,2))) 정수인것을 실수로 소수 둘째 자리 까지 나타내기! 외워야겠다 format외우자 import sys import math input = sys.stdin.readline n , k = map(int, input().split()) student = list(map(int, input().split())) for _ in range(k): a, b = map(int, input().split()) sum = 0 for i in range(a-1,b): sum += student[i] ans = sum/(b-a+1) print('{:..
2️⃣ 바이러스 소프티어에서 유명한 문제라고해서 풀어봤다! 💡아이디어 숙주의 몸속에서 1초당 P배씩 증가! K마리가 있었다면 N초 후에는 몇마리?! 예시를 들어 2마리가 있는데 1초당 3배씩 증가하고 2초후에는..? 2 → 6 → 18 즉, k → k * p → k * p * p n만큼 이를 반복한다 📝 풀이 오버플로우 등을 고려하지 않은 틀린 풀이 k, p, n = map(int, input().split()) ans = 0 for i in range(n): ans += k*p*(i+1) print(ans % 1000000007) 처음에는 순전히 답의 나머지를 구하면 된다고 생각했는데 그렇게 되면 연산이 진행되는 와중에도 값이 너무 커져서 오버플로우가 발생한다. 중간에도 큰수로 나눈 나머지로 값을 지정..