제목: 99클럽 코테 스터디 5일차 TIL + 오늘의 학습 키워드 : 해시
- 오늘의 학습 키워드 : 해시
- 공부한 내용 본인의 언어로 정리하기
1. Input메소드
: input() 함수는 사용자로부터 입력을 받는 함수입니다.
사용자가 입력한 값은 문자열 형태로 반환됩니다.
사용예시
name = input("이름을 입력하세요: ")
print(f"안녕하세요, {name}님!")
# 이름을 입력하세요: 라는 입력창이 나오고, 사용자가 입력한 값이
# name이라는 변수에 저장된다.
# "수달" 입력하고 엔터하면
# name = "수달" 인 것이다.
# 그리고 Print 출력 메소드를 통해서 f를 입력하고 중괄호안에 변수는 값으로 변환해서 출력된다
2.Join메소드
:join() 메소드는 문자열을 연결하여 하나의 문자열로 만드는 메소드입니다. 리스트나 튜플의 각 요소를 특정 구분자로 연결합니다.
사용예시
words = ['안녕하세요', '세상']
sentence = ' '.join(words) # ' ' 공백를 기준으로 해당 리스트의 단어들을 이어 붙여준다.
print(sentence) # 출력: 안녕하세요 세상
#만약에 sentencs =','.join(words) 였다면 출력 : 안녕하세요,세상 이 되었을 것이다.
3. 리스트 컴프리헨션 (List Comprehension)
: 리스트 컴프리헨션은 기존 리스트를 기반으로 새로운 리스트를 생성하는 간결한 방법입니다. 조건문과 반복문을 사용하여 리스트의 각 요소를 변형하거나 필터링할 수 있습니다.
사용예시
numbers = [1, 2, 3, 4, 5]
squares = [x ** 2 for x in numbers]
print(squares) # 출력: [1, 4, 9, 16, 25]
#위 코드는 numbers 리스트의 각 요소를 제곱하여 새로운 리스트 squares를 생성합니다.
- 오늘의 회고
오늘 계획은 SQLD 강의 전부 듣기였는데,
오전에는 스벅가서 1과목에 대한 필기 및 강의를 듣고,
집가서 공부하겠다는 게 ...;; 결국 넷플릭스의 드라마 '기생수: 더그레인?' 을 보다가... 오후를 다 날려버렸다.
정확하게는 거의 5시간을 버렸다 ㅠㅠ
그래서 지금 코테 하면서 급하게 오늘까지 강의 다 듣기로 한거랑 필기를 하는데,,, 2과목의 1/3 까지 왔다.
앞으로 2/3을 더 하고 자야한다 ㅠㅠ 게으름을 탓해야지..;;
- 어떤 문제가 있었고, 나는 어떤 시도를 했는지
전 회차의 문제가 딕셔너리로 매핑해서 문제를 푸는 방식이였다.
전일 라이브 특강에서의 팁을 기준으로 문제를 다가가면,
저 모스 부호를 키로 그리고 알파벳, 숫자 , 특수기호를 값으로 만들어서 풀어야 할 것 같다.
모스부호라는 딕셔너리를 만든다.
morse_dict = {
'.-': 'A',
'-...': 'B',
'-.-.': 'C',
'-..': 'D',
'.': 'E',
'..-.': 'F',
'--.': 'G',
'....': 'H',
'..': 'I',
'.---': 'J',
'-.-': 'K',
'.-..': 'L',
'--': 'M',
'-.': 'N',
'---': 'O',
'.--.': 'P',
'--.-': 'Q',
'.-.': 'R',
'...': 'S',
'-': 'T',
'..-': 'U',
'...-': 'V',
'.--': 'W',
'-..-': 'X',
'-.--': 'Y',
'--..': 'Z',
'.----': '1',
'..---': '2',
'...--': '3',
'....-': '4',
'.....': '5',
'-....': '6',
'--...': '7',
'---..': '8',
'----.': '9',
'-----': '0',
'--..--': ',',
'.-.-.-': '.',
'..--..': '?',
'---...': ':',
'-....-': '-',
'.--.-.': '@',
}
딕셔너리로 키 : 값 형태 만든다.
각 공백을 기준으로 spilit메소드로 나눠서 리스트에 저장한다!
그 다음 공백을 기준으로 Join해주는데, 그 안에서 리스트에 대한 각 키에 대한 값을 반환한 것을 join해준다.
- 어떻게 해결했는지
주어진 코드는 모스 부호를 해독하는 프로그램입니다. 각 부분을 좀 더 자세히 설명하겠습니다.
모스 부호 딕셔너리 (morse_dict):
이 딕셔너리는 모스 부호를 키로, 그에 대응하는 알파벳이나 숫자를 값으로 가지는 형태입니다. 예를 들어, '.-'는 'A'에 해당하고, '-----'는 '0'에 해당합니다.
입력 부분:
N = int(input())
morse = input().split()
N은 입력받는 모스 부호의 개수를 의미합니다. 하지만 이 변수는 코드 내에서 사용되지 않습니다.
<- 하지만, 백준에서는 5라는 입력 예시가 있기에 적용했다.
morse = input().split()는 사용자가 입력한 모스 부호 문자열을 공백을 기준으로 나누어 리스트 형태로 저장합니다.
예를 들어, 사용자가 '.- -... -.-.'라고 입력하면 morse 리스트는 ['.-', '-...', '-.-.']가 됩니다.
해독 부분:
print(''.join([morse_dict[char] for char in morse]))
이 부분은 리스트 컴프리헨션을 사용하여 morse 리스트의 각 모스 부호를 morse_dict 딕셔너리에서 찾아 해당하는 문자로 변환합니다.
morse_dict[char]는 현재 모스 부호를 키로 사용해 값을 찾는 과정입니다.
''.join([...])는 변환된 문자들을 하나의 문자열로 합치는 역할을 합니다.
결과적으로, 이 코드는 입력된 모스 부호를 해독하여 그에 해당하는 문자열을 출력하는 기능을 수행합니다.
사용자가 입력한 모스 부호를 딕셔너리를 참조하여 변환하고, 최종적으로 하나의 문자열로 만들어 출력합니다.
- 무엇을 새롭게 알았는지
1. 만약에 로또번호를 배열이나 리스트에 있다고 가정한다면 ,
LIST = [ '1',' 2', '3', '4', '5']
join메소드를 이용해서 NumStr = ', '.join(LIST) 하면 '1, 2, 3, 4, 5' 와 같이 원하는 구분자로 조인을 할 수 있다는 것을 알았다.
2. 그리고 INPUT이라는 입력으로 사용자가 입력한 값을 저장하는 법도 알게되었다.
3. 아직 [morse_dict[char] for char in morse] 이런 형태일 때 작성해서 푸는 법은 이해는 하는데, 막상 생각나지 않는다.
더 연습해야 할 것 같다.
- 내일 학습할 것은 무엇인지
다이어리의 계획성으로는
11/2~11/3 주말동안
파이썬300제 전부 공부하는 게 목표이다!! ㅎㅎ
아래는 '위키독스'라는 무료로 개방한 도서들을 볼 수 있는 곳이다. 링크도 올려놓겠다.
요기에는 프로그래밍 관련된 도서에 대한 코드도 바로바로 긁어오거나 공부하는 데 도움을 주는 곳인데 적극적으로
활용하지 못했다가,,, 실무에 취약한 공부를 위해서 자주 찾아볼 예정이다. ㅎㅎ
99클럽, len, TiL, todayislearned, while문, 개발자취업, 문자열, 문자열분리, 코딩테스트준비, 항해99
99클럽 코테 스터디 7일차 TIL + 오늘의 학습 키워드 : 해시 (2) | 2024.11.03 |
---|---|
99클럽 코테 스터디 6일차 TIL + 오늘의 학습 키워드 : 해시 (4) | 2024.11.02 |
99클럽 코테 스터디 4일차 TIL + 오늘의 학습 키워드 : 문자열+해시 (2) | 2024.10.31 |
제목: 99클럽 코테 스터디 3일차 TIL + 오늘의 학습 키워드 : 문자열 (4) | 2024.10.30 |
[PCCP 기출문제] 1번/ 동영상 재생기 -파이썬 (0) | 2024.10.29 |