일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 그래프 탐색
- error:0308010C:digital envelope routines::unsupported
- 최장공통부분문자열
- 수학
- 최장공통부분수열
- 너비 우선 탐색
- 나는 바보야...
- dfs
- 배낭 문제
- 일단 시도
- 동적 계획법
- 다이나믹 프로그래밍
- 깊이 우선 탐색
- 정처기 필기
- Container vs VM
- npm start
- Docker 원리
- 클래스
- db replication
- bfs
- 그래프 이론
- Python
- 파이썬
- 냅색 알고리즘
- 그래프탐색
- 문자열
- 구현
- LCS 알고리즘
- 모듈러 연산 분배법칙
- lazy evaluation
- Today
- Total
목록전체 글 (48)
Save my data
시나공 최신판을 썼고, 내가 한번이라도 읽었던 부분이 문제로 나왔나 안 나왔나를 기억나는대로 써봤다. (CBT 시험이었기 때문에 의미는 없지만...) 1과목 / 소프트웨어 설계 : 이 과목은 공부를 별로 안 하고 갔다. 에자일 관련해서 역시나 몇 문제 나왔다. 럼바우 관련 문제 나왔다. 유스케이스 관련해서 문제가 나왔다. 2과목 / 소프트웨어 개발 : 전위, 중위, 후위 탐색법 문제 안 나왔다. 그래프 선 긋기 문제 안 나왔다. 테스트 오라클 안 나왔다. 상향식, 하향식 문제 하나 나왔다. 테스트 드라이버 관련 문제였다. 모듈, 구현, 패키징에 대해 꽤 많은 문제가 나왔다. 블랙박스, 화이트박스 테스트 한 두 문제 나왔던 것 같다. 자료구조 한 문제? 정도 나왔던 것 같다. 알고리즘에 대해 묻는 문제가 ..
요구하는 대로만 구현하면 답인 구현 문제였다. import sys def gen(n, arr): if sum(arr) == n: print(f"{n} =", " + ".join(map(str, arr))) else: print(f"{n} is NOT perfect.") while 1: factors = [] N = int(sys.stdin.readline()) if N == -1: break for i in range(1, (N // 2) + 1): if not N % i: factors.append(i) gen(N, factors) 며칠동안 쉬운 문제만 풀면서 포스팅 했는데 다음주부터는 다시 그래프 문제를 풀어야겠다. 사실 백준 14502 연구소 문제에서 막혀서 구글링했는데, 보니까 백트래킹이라는 기법..
클래스를 만들 때 생성자 혹은 다른 멤버함수에 첫 번째 인자로 보통 self를 쓴다.파이썬 외의 다른 언어에서도 this라는 이름으로 쓰여지는 이 self에 대해 알아보고자 한다.class Test: def func1(): print("func1() 실행됨") def func2(self): print(self) print(id(self))test_obj = Test()print(test_obj.func1())# >>> TypeError: Test.func1() takes 0 positional arguments but 1 was given Test 클래스를 정의하고 있다.Test 클래스 내부에는 두 개의 멤버함수가 있다.func1 에는 아무 인자도 주어지지..
오늘은 파이썬의 클래스를 살펴보자.나는 이런 나무위키식 학습을 좋아한다.클래스 :사용자가 정의한 속성들이 있는 특정 객체들을 만들기위한 설계도파이썬의 클래스는 자신만의 네임스페이스를 가진다.클래스의 네임스페이스를 확인하고 싶다면 클래스이름.__dict__ 로 확인할 수 있다.Account.__dict__ class Account: total_accounts = 0 def __init__(self, client_name:str): self.client_name = client_name Account.total_accounts += 1 def __del__(self): Account.total_accounts -= 1 은행 계좌를 개설하는 클래스를 만들었..
간단한 수학 문제이다. 각각 입력 받은 수를 n과 n이라고 했을 때, n를 m으로 나눴을 때 나머지가 있고 m을 n으로 나눴을 때 나머지가 없으면 "factor", 그 반대의 경우는 "multiple", 둘 다 나머지가 있는 경우는 "neither" 로 처리해주었다. 이번 문제는 파이썬 클래스의 getter와 setter를 학습하기 위하여 클래스를 선언하여 풀었다. import sys class MultiplesAndDivisors: def __init__(self): self.n = 0 self.m = 0 @property def answer(self): return self.__ans @answer.setter def answer(self, value): self.__n = value[0] self...
이 글은 오늘의 면접에서 특히 내 기억에 남는 세 번의 실수에 대한 회고이다. 면접에서 여러모로 배워가는 것이 많았는데, 오후중에 진행이 되었고 한 시간 약간 넘게 진행이 되었다. 첫 면접인 만큼 여러 실수를 했고 그 만큼 배워가자는 마인드로 임했다. 특히 신입, 경력을 불문하고 개발자로서 지녀야 할 모범적인 태도나 각 언어를 대하는 마음가짐에 대해 다시 한 번 생각하게 되는 계기가 되었다. 면접은 회사 내부 별도의 사무실에서 진행이 되었고 두 분이 들어오셨다. 첫 면접이라 많이 떨렸지만 배려를 많이 해 주신 덕에 면접 자체는 편안한 분위기에서 진행이 되었다. 첫 15분 정도는 업력과 업종에 대해 간략히 설명을 듣고, 그 후 15분 정도는 성격의 장단점이나 그간의 이력, 경력에 대해 질문을 받았다. 회사..
단순히 구현만 하면 되는 쉬운 문제였다. import sys score = { "A+" : 4.5, "A0" : 4.0, "B+" : 3.5, "B0" : 3.0, "C+" : 2.5, "C0" : 2.0, "D+" : 1.5, "D0" : 1.0, "F" : 0.0 } res = [] total_point = 0 for _ in range(20): subject, point, grade = sys.stdin.readline().split() point = float(point) if grade != 'P': res.append(point * score[grade]) total_point += point print(sum(res)/total_point) 오늘은 쉬어가는 차원에서 가벼운 문제만 풀었다.
재귀를 이용하여 풀 수 있는 쉬운 문제이다. 예전에 재귀함수쪽을 학습할 때 비슷한 문제를 푼 적이 있어서 쉽게 풀었다. import sys s = sys.stdin.readline().strip() l = len(s) - 1 def palindrome(front:int, rear:int, s:str) -> bool: if front >= rear: return 1 if s[front] == s[rear]: ans = palindrome(front + 1, rear - 1, s) return ans else: return 0 print(palindrome(0, l, s)) 자꾸 틀렸다고 나와서 코드를 이리저리 바꿔가면서 했는데도 안됬다. 한 네 번째 시도를 하고 다시 코드를 보니 sys.stdin.read..