Algorithm/Implement 15

2852번/NBA 농구

📕 문제https://www.acmicpc.net/problem/2852    📄 내가 생각한 풀이 💻 내 코드 # 입력: n: 골이 들어간 횟수, 득점한 팀번호(1 또는 2)와 득점한 시간 정보# 출력 : 전체 경기시간(48분) 중 몇분동안 이기고 있었는지# winner리스트 -> 1:1 이면 계산 안해, # 상대 팀이 처음 득점시 시간 차이가 결과 # 48:00 - 31:30 = 16:30# case3# 2:2# 1 = 2 , 01:10 + 43:10 + 1:10# 2 = 3, 00:10 # 동점일 땐 득점시간 없음n = int(input())# [이전시간, 몇 번팀이 이기고 있었는지]prev = [0,0]# [팀1이 이긴 횟수, 몇분동안 이기고 있었는지]# team1 =[0,0]# tea..

Algorithm/Implement 2025.01.23

10709번 / 기상캐스터 / 구현 / 2차원 배열

https://www.acmicpc.net/problem/10709  import sys# H행 W열H , W = map(int, input().split())arr = []for i in range(H): arr.append(list(sys.stdin.readline().rstrip()))result =[]# 구름 있던 자리는 0# 구름 지나가지 않으면 -1 -> 디폴트 값# 구름 지나가면 +1, for a in arr: # -1로 초기화된 sky 배열 sky = [-1 for _ in range (W)] time = -1 for b in range(W): if a[b] == 'c': sky[b] = 0 time = 0 ..

Algorithm/Implement 2025.01.14

20920번 / 영단어 암기는 괴로워 / 문자열

📕 문제https://www.acmicpc.net/problem/20920   📄 풀이 딕셔너리 사용sorted함수 사용 💻 내 코드 # 조건# 1.m길이 이상# 2.입력 횟수가 2이상인 애들중 빈도수가 높은 단어순으로-> 딕셔너리# 3.단어 길이가 긴 순으로# 4.알파벳 사전 순으로 import sysn,m = map(int, input().split())result = dict()for i in range(n): word = sys.stdin.readline().rstrip() if len(word) >= m: # 이미 result에 있으면 1 증가 if word in result: result[word] += 1 # 기..

Algorithm/Implement 2025.01.12

1764번 / 듣보잡/ 문자열

📕 문제 https://www.acmicpc.net/problem/1764  📄 풀이   💻 내 코드 # a,b 의 값중 중복되는 값의 갯수 출력n , m= map(int, input().split())a = set()b= set()for i in range (n) : a.add(input())for i in range (m): b.add(input())# & 중복값 계산 -> 리스트에서 사용불가, set자료형에서 사용가능result = sorted(a & b)# print(a)# print(b)print(len(result))print(*result)📁 참고자료 ☺️ 새로 알게 된 지식중복된 값 구하기 -> & 연산자 -> 리스트 사용불가, set 자료형으로 사용가능입력값 받을 때 f..

Algorithm/Implement 2025.01.10

4659번/ 비밀번호/ 문자열 (다시)

https://www.acmicpc.net/problem/4659    # 조건) aeiou 중 1개 반드시 포함, # 모음이나 자음 3개 연속안돼, # 같은 글자 2번연속 안돼(ee,oo는 가능)# 대문자 안돼# 마지막 테스트 케이스는 endimport sysdef is_acceptable(word): case =['a','e','i','o','u']# 조건1: 모음 안에 1개 이상 있어야해 if not any (char in case for char in word): return False # 조건2: 같은 글자 2개 연속 안돼 for i in range(len(word)-1): if word[i] == word[i+1] and word[i:i+2..

Algorithm/Implement 2025.01.06

20291번/ 파일정리/ 딕셔너리

📕 문제https://www.acmicpc.net/problem/20291  📄 내가 생각한 풀이딕셔너리 사용 생각 못함 💻 내 코드 # 확장자 별로 확장자 이름과 갯수 출력# 확장자 이름 사전순으로 출력# 딕셔너리 이용하기import sysn = int(input())# 딕셔너리 생성, key: 확장자, value : 확장자 나온 횟수cnt = {}for _ in range(n): file = sys.stdin.readline().rstrip()# 오른쪽부터 .을 기준으로 최대 1개 분리해서 확장자 추출 _,extension = file.rsplit('.', 1) if extension in cnt: cnt[extension] += 1 else: cn..

Algorithm/Implement 2025.01.05

프로그래머스/ 문자열 압축 (다시)

📕 문제https://school.programmers.co.kr/learn/courses/30/lessons/60057 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr   📄 내가 생각한 풀이# 1. 1~len(s)글자씩 끊기# 2. 끊은 다음 문자와 같은지 확인# 3. 같으면 count +1하기# 4. 압축 문자열 compress 에 str(count)+문자열로 추가# 5. 길이 최소값 min 구하기💻 내 코드 def solution(s): # 초기 최소 길이는 원본 문자열 길이 answer = len(s) # 압축 단위 크기 1부터 len(s)까지 시도 for i ..

Algorithm/Implement 2024.12.28

프로그래머스/ 모음사전

📕 문제https://school.programmers.co.kr/learn/courses/30/lessons/84512 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr   📄 내가 생각한 풀이 itertools.product:repeat=i를 사용해 길이가 i인 모든 가능한 조합을 생성합니다.예: i=2일 때, 결과는 ('A', 'A'), ('A', 'E'), ..., ('U', 'U').words.append("".join(j)):생성된 튜플(('A', 'A'))을 문자열로 변환하여 리스트에 추가합니다.words.sort():생성된 단어들을 사전 순으로 정렬합니다.words.index(word) ..

Algorithm/Implement 2024.12.28

7568번 / 덩치

📕 문제https://www.acmicpc.net/status?user_id=hona2800&problem_id=7568&from_mine=1   📄 내가 생각한 풀이 튜플 (x,y) 형식으로 리스트에 추가  💻 내 코드 n = int(input())person = []# 사람들의 키와 몸무게 입력받기for _ in range(n): x, y = map(int, input().split()) person.append((x, y))# 각 사람의 등수 계산for i in person: rank = 1 # 각 사람의 기본 등수는 초기값 1 for j in person: if i[0]  💻 답안 // 📁 참고자료 ☺️ 새로 알게 된 지식 1. 리스트에 튜플 () 형..

Algorithm/Implement 2024.12.28

20546번 / 기적의 매매법

📕 문제 https://www.acmicpc.net/problem/20546  📄 풀이 1. 1월 14일의 자산은 (현금 + 1월 14일의 주가 × 주식 수)로 계산-> 준현, 성민이의 잔여 현금, 주식 수 변수 각각 필요->  1월 14일의 주가:  stock[-1] 로 구현   💻 내 코드 n = int(input())stock = list(map(int, input().split()))last = len(stock)jun = 0seong = 0for i in range(last): # q는 주식 수 q = n // stock[i] if q > 0 : # 준현 주식 스타일 n -= q * stock[i] jun = n + q * sto..

Algorithm/Implement 2024.12.27