상세 컨텐츠

본문 제목

99클럽 코테 스터디 5일차 TIL + 오늘의 학습 키워드 : 해시

본문

728x90
반응형



5일차 꾹!

제목: 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을 더 하고 자야한다 ㅠㅠ 게으름을 탓해야지..;;

 

- 어떤 문제가 있었고, 나는 어떤 시도를 했는지

백준 29701번 : 모스 부호

 

전 회차의 문제가 딕셔너리로 매핑해서 문제를 푸는 방식이였다.
전일 라이브 특강에서의 팁을 기준으로 문제를 다가가면,
저 모스 부호를 키로 그리고 알파벳, 숫자 , 특수기호를 값으로 만들어서 풀어야 할 것 같다.

모스부호라는 딕셔너리를 만든다.

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제 전부 공부하는 게 목표이다!! ㅎㅎ 
아래는 '위키독스'라는 무료로 개방한 도서들을 볼 수 있는 곳이다. 링크도 올려놓겠다.
요기에는 프로그래밍 관련된 도서에 대한 코드도 바로바로 긁어오거나 공부하는 데 도움을 주는 곳인데 적극적으로
활용하지 못했다가,,, 실무에 취약한 공부를 위해서 자주 찾아볼 예정이다. ㅎㅎ 

 

https://wikidocs.net/7014

 

001 ~ 010

.answer {margin-top: 10px;margin-bottom: 50px;padding-top: 10px;border-top: 3px solid LightGray;bo…

wikidocs.net

 

99클럽, len, TiL, todayislearned, while문, 개발자취업, 문자열, 문자열분리, 코딩테스트준비, 항해99

 

728x90
반응형

관련글 더보기