어제는 늦게까지 백준 풀다보니 TIL을 작성하지 못했네요..ㅎ
대학원 들어와서 꼭 해야할 3가지에 대해서 생각해보았는데요.
학부때부터 제대로 공부하지 못해서 아쉬웠던 개발과 해킹에 대해서 다시 공부해보려고 합니다.
연구 메인 분야로 블록체인을 선택하였는데, 관련해서 생태계를 그리 잘 아는 것 같진 않아서 Web3 공부도 열심히 해야할 것 같아요.
최근에 교수님들과 미팅 및 면담을 하게 되면서 생각한건데 너무 한 분야만 집중하기 보다는 여러 분야를 접해보는 것도 좋은 방법 중의 하나일 것 같다는 생각이 들었습니다.
그리고 랩에서는 아이디어 제안하는 것을 매우 중요한 가치로 여기고 있어서 학부, 석사때부터 스스로 연구 주제를 발굴하는 연습을 하고 있습니다. 근데 정말 어렵더라구요. 괜찮은 아이디어 같은데?! 싶어서 조사해보면 이미 있고, 제가 알고 있는 것을 기반으로 새로운 것을 제안하는 것이 정말 어렵다고 생각했습니다. 어느날 미팅을 들어갔는데 교수님께서 생물학의 세포와 관련해서 말씀을 해주시더라고요. 듣고 놀랐습니다.
미팅을 함께 들어갔던 다른 분이 디지털 면역체계와 관련된 연구를 하고 계셨는데, 코멘트로 하셨던 말씀이
실제 우리 몸에서 균이 들어왔을 때 항원-항체 반응은 알고 있는 특정 균에 대해서 잡아먹고, 대식 세포는 균이든 좋은 세포든 모두 잡아 먹는 세포라고 하시면서 보안에서도 유사하게 적용할 수 있다. 이런 내용으로 말씀해주셨습니다.
저는 아이디어를 넓게 생각한다고 해도 보안 분야 중에서 다른 분야의 솔루션을 내가 하고 있는 분야에 적용해보면 어떨까?가 최선이었는데, 정말 다른 일상의 분야에서도 접목해서 생각해볼 수 있다는 것을 새롭게 깨닫게 되었습니다. 그래서 더욱이 하나에 집중하는 것도 좋지만, 뭐가 됐던 많이 보고 배우는 것이 좋겠다 싶더라구요.
서론이 길었는데, 어쨌던 요즘은 관심 분야를 넓혀보려고 하고 있습니다.
오늘 제가 코테 연습을 한다고 브론즈 문제부터 시작해보았는데, 연습삼아 해본 문제들에서도 배울 점이 있었습니다.
보통 python으로 사용자의 입력을 받을 때 input함수를 사용하잖아요. 근데 sys.stdin.readline()으로도 가능하더라구요.
input 함수는 input("prompt message") 이런식으로 프롬프트에 메시지를 입력할 수 있고, 해당 값이 출력되면서 사용자의 입력을 받게 되는데 거기서 약간의 지연이 발생한다고 합니다. 반복문으로 입력을 많이 받는 상황에서는 sys.stdin.readline()이 효율적이라고 하네요ㅎㅎ
브론즈 문제중에 다이얼이라는 문제가 있는데, 다른 write up을 보니 리스트에 문자열을 배치하거나 문자에 따른 시간을 미리 선언해두고 사용하더라구요.
다른 방법으로 풀고 싶어서 고민을 해보았는데, ASCII 문자열을 ord로 변환해서 3으로 나누었을 때 해당하는 시간에 매핑되도록 작성해볼 수 있었습니다.
import sys
def main():
total_time = 0
num = sys.stdin.readline().strip()
arr = [3, 4, 5, 6, 7, 8, 9, 10]
for i in range(len(num)):
if num[i] == 'S' or num[i] == 'V' or num[i] == 'Y' or num[i] == 'Z':
num_index = (ord(num[i])-62)//3
total_time += arr[num_index-2]
else:
num_index = (ord(num[i])-59)//3
total_time += arr[num_index-2]
print(total_time)
if __name__ == '__main__':
main()
생각했던 방법이 통해서 오! 하면서 풀었네요ㅎㅎ
알고리즘 단계별로 풀이를 진행하고 있는데, 실버전까진 하루에 한챕터씩 풀이해보려고 합니다!
그럼 오늘도 화이팅!
'TIL > TIL' 카테고리의 다른 글
2024년 10월 15일 (화) (0) | 2024.10.15 |
---|