728x90

분류 전체보기 274

백준 20291 파일 정리 (파이썬) 문자열

20291번: 파일 정리 (acmicpc.net) 20291번: 파일 정리 친구로부터 노트북을 중고로 산 스브러스는 노트북을 켜자마자 경악할 수밖에 없었다. 바탕화면에 온갖 파일들이 정리도 안 된 채 가득했기 때문이다. 그리고 화면의 구석에서 친구의 메시지를 www.acmicpc.net import sys input = sys.stdin.readline N = int(input()) lst = {} for i in range(N): file = input().strip() tmp = file[file.find('.') + 1:] if tmp in lst: lst[tmp] += 1 else: lst.setdefault(tmp, 1) lst2 = sorted(lst.items()) for i in lst2:..

백준 11663 선분 위의 점(파이썬) 이분 탐색

11663번: 선분 위의 점 (acmicpc.net) 11663번: 선분 위의 점 첫째 줄에 점의 개수 N과 선분의 개수 M이 주어진다. (1 ≤ N, M ≤ 100,000) 둘째 줄에는 점의 좌표가 주어진다. 두 점이 같은 좌표를 가지는 경우는 없다. 셋째 줄부터 M개의 줄에는 선분의 시작점과 www.acmicpc.net 이분 탐색 문제이다. 처음에는.. 아 for문 돌리면서 풀어야할텐데 이걸 어떻게 이분탐색으로 풀지? 고민이 많았는데 어차피 가장 큰값과 작은 값에 해당하는 인덱스를 알면 거기서 빼기만 하면 되니까 이분탐색이 되겠구나! 하는 접근방법으로 다가갔다. 그랬더니 정답은 나왔는데.... import sys N, M = map(int,input().split()) dots = list(map(i..

백준 19637 IF문 좀 대신 써줘 - 파이썬

19637번: IF문 좀 대신 써줘 (acmicpc.net) 19637번: IF문 좀 대신 써줘 첫 번째 줄에는 칭호의 개수 N (1 ≤ N ≤ 105)과 칭호를 출력해야 하는 캐릭터들의 개수 M (1 ≤ M ≤ 105)이 빈칸을 사이에 두고 주어진다. (1 ≤ N, M ≤ 105) 두 번째 줄부터 N개의 줄에 각 칭 www.acmicpc.net 이분탐색.. 잘 해오고있었는데 갑자기 뙇 어려운 문제 봉착.. 근데 자꾸 시간초과가 뜨는것임 ;; 이분탐색으로 했는데도 ..... 그래서 찾아보니 따로 함수를 만들고 조건에 해당될 떄만 불러오는게.. 아무래도 시간을 덜 쓰는듯 싶다. import sys N, M = map(int, sys.stdin.readline().split()) rank = [sys.std..

백준 1343 폴리오미노

1343번: 폴리오미노 (acmicpc.net) 1343번: 폴리오미노 첫째 줄에 사전순으로 가장 앞서는 답을 출력한다. 만약 덮을 수 없으면 -1을 출력한다. www.acmicpc.net 하하.. 그리디였는데 그리디는...... 효율적이면 대수인 유형이지. str = input() cnt = 0 dot = 0 lst = [] lst2 = [] for i in range(len(str)): if str[i] == 'X': cnt += 1 elif str[i] == '.': if cnt != 0: if cnt % 2 == 1: break lst.append(cnt) cnt = 0 lst.append('.') lst.append(cnt) if cnt % 2 == 1: print(-1) else: for i ..

백준 2805 나무 자르기 - 이분 탐색

2805번: 나무 자르기 (acmicpc.net) 2805번: 나무 자르기 첫째 줄에 나무의 수 N과 상근이가 집으로 가져가려고 하는 나무의 길이 M이 주어진다. (1 ≤ N ≤ 1,000,000, 1 ≤ M ≤ 2,000,000,000) 둘째 줄에는 나무의 높이가 주어진다. 나무의 높이의 합은 항상 M보 www.acmicpc.net 이분탐색으로 푼 첫 문제였다. N, M = map(int, input().split()) lst = list(map(int, input().split())) for j in range(max(lst) - 1, 0, -1): new_lst = [lst[i] - j if lst[i] - j > 0 else 0 for i in range(len(lst))] if sum(new_l..

백준 1935 후위 표기식2 ( stack )

1935번: 후위 표기식2 (acmicpc.net) 1935번: 후위 표기식2 첫째 줄에 피연산자의 개수(1 ≤ N ≤ 26) 가 주어진다. 그리고 둘째 줄에는 후위 표기식이 주어진다. (여기서 피연산자는 A~Z의 영대문자이며, A부터 순서대로 N개의 영대문자만이 사용되며, 길이 www.acmicpc.net 이런 식으로 후위표기 계산을 해야하는 문제.. 우선 후위표기식이 어떻게 계산되는가를 아는것이 중요했다. 후위표기식은 앞에서부터 괄호를 만들어가면서 왼쪽 두 수에 오른쪽 기호를 대입해 계산해나가는 방식. 예제는 A + ( B * C ) / ( D - E ) 이런 식으로 나타낼 수 있다. 어떻게 계산하는지 알고 난 후 이를 어떤 식으로 묶어서 계산해나가야할지 막막했는데 스택을 이용하라는 힌트가 있었다. ..

백준 1874 스택 수열

1874번: 스택 수열 (acmicpc.net) 1874번: 스택 수열 1부터 n까지에 수에 대해 차례로 [push, push, push, push, pop, pop, push, push, pop, push, push, pop, pop, pop, pop, pop] 연산을 수행하면 수열 [4, 3, 6, 8, 7, 5, 2, 1]을 얻을 수 있다. www.acmicpc.net 스택 문제여서 겁없이 도전했던 문제.. 뭔가 알듯말듯 하면서도 좀 복잡해서 시간이 꽤나 걸렸는데 아니나 다를까 또!! 또간초과가 떠서 애를 먹었다.. import sys n = int(sys.stdin.readline()) lst = [] for i in range(n): lst.append(int(sys.stdin.readline(..

Managers에 InputManager 집어넣어 event class 관리하기

저번에 만들었던 그 Managers에 이제 본격적으로 필요한 클래스들을 넣어서 그때그떄 필요할 때만 함수들을 출력하며 관리하려고 한다. //Managers.cs using System.Collections; using System.Collections.Generic; using UnityEngine; public class Managers : MonoBehaviour { static Managers s_instance; static Managers Instance{ get { init(); return s_instance;} } //1.init()을 통해 씬에 Manager 없으면 만들고 안에 Managers.cs넣어서 instance출력 InputManagers _input = new InputMana..

GAME ENGINE/Unity 2022.09.04

싱글톤 패턴 멋대로 해석 - 인프런 유니티 강의

싱글톤이란? 인스턴스를 하나로 둬서 그것을 다른 클래스에서 참조하도록 해주는 것! 인스턴스와 오브젝트의 차이점? 둘 다 어떤 하나의 객체를 말하긴 하지만 오브젝트: 실체 인스턴스: 원본과의 관계에 집중 (어떤 원본에서 나눠진 개별의 객체) 싱글톤 만드는 이유? gameObject에서 가장 핵심적인 것들을 다루는 Manager라는 component를 만들고 이를 다른 class들이 쉽게 접근 가능하도록 도와주는 애인 것 같다. if Managers.cs의 코드가 using System.Collections; using System.Collections.Generic; using UnityEngine; public class Managers : MonoBehaviour { static Managers s_i..

GAME ENGINE/Unity 2022.09.03

백준 2417 정수 제곱근

2417번: 정수 제곱근 (acmicpc.net) 2417번: 정수 제곱근 정수가 주어지면, 그 수의 정수 제곱근을 구하는 프로그램을 작성하시오. www.acmicpc.net 여러모로 날 빡치게했던 이번 문제.. 계속86까지 진행됐다가 틀렸다고 떴ㄷㅏ.. 찾아보니까 부동소수점에 해당하는 케이스땜에 틀렸다고 하는것임.. 파이썬은 float계산에서 오류를 많이 발생시킨다고 하는데 고정 소수점과는 달리 부동소수점은 안 움직인다는게 아니고 움직이는 소수점이라는것임 사실 피자를 자를때도 정확히 8등분이 아니라 한 조각이 7.99994564352434243 등분일수 잇지 않은가 그렇기 때문에 float계산에서 사실 67108864.00000000000002423435435인데 이럴 때 파이썬에서는 메모리 보호 차원..

728x90