본문 바로가기

전체 글

(331)
발더스게이트3 세이브 데이터 디코딩 멀티플레이어 배정 오류 복구하기 디코딩으로 에러를 해결하는 과정을 다음에 또 겪으면 따라해야하니까 개발 블로그에 기록한다. 문제 상황게임을 30시간은 진행해온 것 같은데 플레이하며 어느 저장시점 이후부터 문제가 발생하였다. 1. 게임을 처음 시작하거나 불러오기 하면 멀티플레이어 배정에 오류 발생호스트 캐릭터와 게스트 캐릭터가 바꿔서 배정되고, 호스트와 게스트가 데리고 있던 동료 캐릭터들이 게스트에만 배정되어 있다던지 하는 문제가 발생하였다.ESC 누르고 멀티플레이 설정을 조절해서 매번 해결을 할 수는 있지만 귀찮고.... 전투 중에 불러오기 하려면 바로 배정을 옮길 수 없는 경우도 있어서 곤란했다. 2. 호스트에서 '야영지에 보관' 버튼 사용 불가버튼 자체가 비활성화 된 것은 아니지만 클릭을 해도 아무일도 일어나지 않고 해당 아이템이 ..
프로그래머스 로또의 최고 순위와 최저 순위 파이썬 풀이 난이도 : Lv. 1풀이일 : 2603172https://school.programmers.co.kr/learn/courses/30/lessons/77484 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr문제코드def solution(lottos, win_nums): answer = [7, 7] free = lottos.count(0) lottos = set(lottos) - {0} win_nums = set(win_nums) correct = len(lottos & win_nums) answer[0] -= correct + free if correct + free else..
프로그래머스 순위 파이썬 풀이 난이도 : Lv. 3풀이일 : 2603135https://school.programmers.co.kr/learn/courses/30/lessons/49191 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr문제코드from collections import dequedef solution(n, results): answer = 0 winners = [set() for _ in range(n + 1)] # 나를 이긴 사람들 losers = [set() for _ in range(n + 1)] # 나한테 진 사람들 for w, l in results: winners[l].ad..
프로그래머스 입국심사 파이썬 풀이 난이도 : Lv. 3풀이일 : 2603102https://school.programmers.co.kr/learn/courses/30/lessons/43238 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr문제아이디어시간을 이분탐색해서 현재 시간 안에 모든 사람의 입국심사를 끝낼 수 있는지 검사하자코드def solution(n, times): answer = 0 front, rear = 0, times[-1] * n # 최소, 최대 시간 설정 while front = n: # 이미 모든 사람을 검사했다면 종료 break # 현재 시간 안에..
프로그래머스 단어 변환 파이썬 풀이 난이도 : Lv. 2풀이일 : 2603054https://school.programmers.co.kr/learn/courses/30/lessons/43163 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr문제코드from collections import dequedef solution(begin, target, words): visited = set([begin]) # 방문 단어 집합 queue = deque([(begin, 0)]) while queue: now, cnt = queue.popleft() for word in words: ..
프로그래머스 전화번호 목록 파이썬 풀이 난이도 : Lv. 2풀이일 : 2603032https://school.programmers.co.kr/learn/courses/30/lessons/42577 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr문제아이디어전화번호들을 정렬하자정렬한 전화번호들을 다음 번호와 비교해서 다음 번호의 접두사인 번호를 발견하면 False를 반환한다.전화번호부를 모두 순회할 동안 False를 반환하지 않았다면 True를 반환한다.코드def solution(phone_book): nums = sorted(phone_book) # 전화번호부 정렬 for i in range(len(nums) - 1): i..
백준 1929 소수 구하기 C++ 풀이 난이도 : 실버3풀이일 : 2602091https://www.acmicpc.net/problem/1929문제에라토스테네스의 체합성수들을 지워나가며 소수만 남기는 방식구하고자 하는 범위)의 모든 숫자를 쭉 나열한다.아직 지워지지 않은 가장 작은 수인 2부터 소수를 선택하여 자신은 남겨두고 2의 배수들을 리스트에서 모두 지운다.다음으로 지워지지 않은 수 (3, 5...)를 선택해 그 배수들을 지우는 과정을 반복한다.지워지지 않고 남은 숫자들은 모두 소수이므로 출력한다.코드#include #include using namespace std;int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); int M, N; cin >> M..
프로그래머스 주식가격 파이썬 풀이 난이도 : Lv. 2풀이일 : 2602054https://school.programmers.co.kr/learn/courses/30/lessons/42584 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr문제코드def solution(prices): answer = [len(prices) - 1 - i for i in range(len(prices))] stack = [[prices[0], 0]] for i in range(1, len(prices)): while stack and prices[i] 결과느낀점어려운 문제도 아닌 것 같은데 이런 문제를 처음 알고리즘 배울 때보다 ..
백준 2166 다각형의 면적 파이썬 풀이 난이도 : 골드5풀이일 : 2601246https://www.acmicpc.net/problem/2166문제코드import systotal = 0 # 면적 합 * 2 저장N = int(sys.stdin.readline())spots = [list(map(int, sys.stdin.readline().split())) for _ in range(N)]for i in range(N): # 사선공식 x1, y1 = spots[i - 1] x2, y2 = spots[i] total += x1 * y2 total -= x2 * y1print(round(abs(total) / 2, 2)) # 면적 출력결과느낀점처음에는 다각형 내에 중심점을 하나 구하고, 두 점으로 만든 선분과 중심점 사이의 ..
프로그래머스 문자열 내 p와 y의 개수 C++, 자바스크립트 풀이 난이도 : Lv. 1풀이일 : 2601224https://school.programmers.co.kr/learn/courses/30/lessons/12916 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr문제C++ 코드#include using namespace std;bool solution(string s){ int p = 0, y = 0; for (char c : s) { if (c == 'p' || c == 'P') p++; if (c == 'y' || c == 'Y') y++; } return p == y ? 1 : 0;}Javascript 코..
프로그래머스 덧칠하기 파이썬 C++ 자바 자바스크립트 풀이, 실행속도 비교 난이도 : Lv. 1풀이일 : 2601202https://school.programmers.co.kr/learn/courses/30/lessons/161989 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr문제Python 코드def solution(n, m, section): answer = 0 last = 0 for s in section: if s > last: answer += 1 last = s + m - 1 return answerC++ 코드#include using namespace std;int solution(i..
프로그래머스 다음 큰 숫자 파이썬 풀이 난이도 : Lv. 2풀이일 : 2601191https://school.programmers.co.kr/learn/courses/30/lessons/12911 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr문제아이디어2진수로 변환 -> binary맨 뒤에 있는 1의 인덱스 찾기 -> oneidxoneidx 앞에 있는 0 인덱스 찾기 -> zeroidxbnum = binary[:zeroidx] + '1' + '0' * (len(n) - oneidx)bunm이 총 binary 길이가 될때까지 += 1코드def solution(n): answer = 0 binary = '0' + bin(n)[2:] #..
프로그래머스 주차 요금 계산 파이썬 풀이 난이도 : Lv. 2풀이일 : 2601165https://school.programmers.co.kr/learn/courses/30/lessons/92341 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr문제아이디어차량의 재입차가 가능하며 기본 요금은 한 번만 적용한다. 모든 차량의 하루 종일 주차 시간을 먼저 구해두고 주차 요금을 계산하자.차량 번호별 입차 시간, 누적 주차 시간을 관리하기 위해 딕셔너리를 사용하자.코드from math import ceildef solution(fees, records): answer = [] parking, total = {}, {} def calcul..
프로그래머스 서버 증설 횟수 파이썬 풀이 난이도 : Lv. 2풀이일 : 2601132https://school.programmers.co.kr/learn/courses/30/lessons/389479 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr문제아이디어각 시간마다 서버를 증설한 수를 기록한다.현재 운영되는 서버의 수를 기록한다.각 시간마다 현재 시간에서 k 시간 전에 증설된 수만큼 서버를 닫고, 증설해야하는 서버의 수를 구해 기록, 증설한다.코드def solution(players, m, k): answer = 0 server_count = 0 server_open = [0] * 24 for i in range(24):..
프로그래머스 나머지가 1이 되는 수 찾기 C++ 풀이 난이도 : Lv. 1풀이일 : 2601121https://school.programmers.co.kr/learn/courses/30/lessons/87389 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr문제코드using namespace std;int solution(int n) { for (int i = 1; i 결과느낀점오늘은 워게임 풀이에 시간이 너무 많이 들어서 아주아주 쉬운 C++ 문제를 들고왔다. 내일은 다시 파이썬으로 그럴듯한 문제를 풀어야지
프로그래머스 가운데 글자 가져오기 C++ 풀이 난이도 : Lv. 1풀이일 : 2601117https://school.programmers.co.kr/learn/courses/30/lessons/12903 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr문제오답코드#include using namespace std;string solution(string s) { string answer = ""; if (s.length() % 2) { answer = s[s.length() / 2]; } else { answer = s.substr(s.length() / 2 - 1, s.length() / 2); } ..
프로그래머스 자릿수 더하기 C++풀이 난이도 : Lv. 1풀이일 : 2601095https://school.programmers.co.kr/learn/courses/30/lessons/12931 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr문제코드int solution(int n){ int answer = 0; while (n) { answer += n % 10; n /= 10; } return answer;}결과느낀점급한날은 안 익숙한 언어로 쉬운거 빨리 풀어야지ㅠㅠ
프로그래머스 프로세스 파이썬 풀이 난이도 : Lv. 2풀이일 : 2601084https://school.programmers.co.kr/learn/courses/30/lessons/42587 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr문제아이디어enumerate로 인덱스와 우선순위를 튜플로 묶어 queue에 저장한다.queue.popleft()로 가장 왼쪽 요소를 뽑아낸 후, 우선순위가 가장 높은 프로세스인지 확인한다.우선순위가 가장 높은 프로세스라면 answer를 1 더하고, 아니라면 다시 queue에 넣는다.오답코드from collections import dequedef solution(priorities, location): an..
프로그래머스 귤 고르기 파이썬 풀이 난이도 : Lv. 2풀이일 : 2601073https://school.programmers.co.kr/learn/courses/30/lessons/138476 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr문제아이디어각 크기별 귤 개수를 저장하는 배열을 만들어 정보를 저장한다.위 배열을 내림차순 정렬한다.각 사이즈들을 누적으로 더해 목표 개수를 넘어서면 리턴한다.코드def solution(k, tangerine): sizes = [0] * (max(tangerine) + 1) for t in tangerine: sizes[t] += 1 sizes.sort(reverse=..
프로그래머스 JadenCase 문자열 만들기 파이썬 풀이 난이도 : Lv. 2풀이일 : 2601062https://school.programmers.co.kr/learn/courses/30/lessons/12951 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr문제아이디어문자열의 맨 앞에 공백을 추가하고 문자열 인덱스 1부터 끝까지 순회하자순회하면서 내 앞 글자가 공백이라면 대문자로 수정, 아니라면 소문자로 수정한다.오답 코드def solution(s): answer = '' targets = list(s.split()) for target in targets: answer += target[0].upper() + target[1:]..