Algorithm 28

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

📕 문제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

구현/ 21918번/ 전구

📕 문제https://www.acmicpc.net/problem/21918     📄 내가 생각한 풀이 1. 전구의 개수 = N, 명령어 개수 = M2. a,b,c를 리스트에 담는다3. 1번~4번 명령어들 코드4. 명령어 입력 후의 변화된 전구들 출력   💻 내 코드 n,m = map (int, input().split())# n = 전구 개수lamp = list(map(int, input().split())) for i in range(m): a,b,c = map(int, input().split()) # 아래 명령을 반복해야해-> for문안에서 실행하기 #1번 명령어 : b번째 전구를 c로 변경 if a == 1: lamp[b-1] = c #2번 명령..

Algorithm/Implement 2024.12.25

구현/14467번/소가 길을 건너간 이유 1

📕 문제https://www.acmicpc.net/problem/14467    📄 내가 생각한 풀이1. 소 번호 입력 받기 input 2. 딕셔너리로 (소 번호, 소 위치) 입력 받기 -> key, value 형태이니3. 1  -> 0 -> 1  이런식이면 2번 길 건넘4. 소 번호당 위치가 바뀐 경우(cow에 num이 없는 경우) 횟수 count + 1 하기  💻 코드 n = int(input())# count : 소가 건넌 횟수, cow : 딕셔너리 선언count = 0 cow = {}for i in range(n): num, loc = map(int,input().split()) if num not in cow: cow[num] = loc elif cow[num]..

Algorithm/Implement 2024.12.24

[프로그래머스] 게임 맵 최단거리 /DFS/BFS/파이썬

https://school.programmers.co.kr/learn/courses/30/lessons/1844 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr  제한사항maps는 n x m 크기의 게임 맵의 상태가 들어있는 2차원 배열로, n과 m은 각각 1 이상 100 이하의 자연수입니다.n과 m은 서로 같을 수도, 다를 수도 있지만, n과 m이 모두 1인 경우는 입력으로 주어지지 않습니다.maps는 0과 1로만 이루어져 있으며, 0은 벽이 있는 자리, 1은 벽이 없는 자리를 나타냅니다.처음에 캐릭터는 게임 맵의 좌측 상단인 (1, 1) 위치에 있으며, 상대방 진영은 게임 맵의 우측 하단인 (n, m..

Algorithm/DFS&BFS 2024.12.19

[프로그래머스] 타겟 넘버/DFS/파이썬 (어렵)

https://school.programmers.co.kr/learn/courses/30/lessons/43165?language=python 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 1. DFS사용 시 => (이해못함)# answer : 경우의 수answer = 0# idx: 배열의 숫자를 선택할 index, cur: 차례대로 계산 중인 결과 값def dfs(idx, cur, numbers, target): global answer if idx == len(numbers): if cur == target: answer += 1 ret..

Algorithm/DFS&BFS 2024.12.17

[이코테] 정렬/ 국영수/백준 10825번

📕 문제https://www.acmicpc.net/problem/10825   📄 내가 생각한 풀이 💻 내 코드 n = int(input())array = []for i in range(n): student = input().split() array.append((student[0], int(student[1]),int(student[2]),int(student[3])))array.sort(key = lambda grade: (-grade[1], grade[2], (-grade[3]), grade[0]))for grade in array: print(grade[0], end =' ') 💻 답안 // 📁 참고자료 ☺️ 새로 알게 된 지식array.sort(key = lambda ..

Algorithm/Sorting 2024.11.08