sooleeandtomas

[day19] 코딩테스트 알고리즘 - 오픈채팅방 (feat.파이썬 %s %d %f) 본문

코딩테스트 알고리즘/기타

[day19] 코딩테스트 알고리즘 - 오픈채팅방 (feat.파이썬 %s %d %f)

sooleeandtomas 2022. 10. 18. 00:38
 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

난이도 lv.2

문제 풀이

준비물1. uid를 통해 최종적으로 유일한 닉네임을 알아야 한다.

준비물2. sentence가 Leave, Enter인지에 따라 uid가 "나갔다" 혹은 "들어갔다"를 출력해준다. 이때 준비물1에서 uid에 해당하는 닉네임을 가져온다.

나의 코드

def solution(record):
  answer = []
  map = {}
  for i in record:
    words = i.split();
    if len(words) > 2:
      map[words[1]]=words[2]

  for re in record:
    sen = re.split()
    if sen[0] == 'Enter': 
      answer.append(map[sen[1]] +'님이 들어왔습니다.')
    elif sen[0] == 'Leave':
      answer.append(map[sen[1]] +'님이 나갔습니다.')  
  return answer

print(solution(["Enter uid1234 Muzi", "Enter uid4567 Prodo","Leave uid1234","Enter uid1234 Prodo","Change uid4567 Ryan"]))

다른 코드를 보니 아래와 같은 문법으로 출력을 했다.

%s %를 통해 원하는 변수 값을 문장 안에 집어넣을 수 있다.

answer.append('%s님이 들어왔습니다.' % map[sen[1]])

 

%s : string

%d: number 정수

%f: float 실수

print('%s,%s,%s,%d,%f' %('EAST','WEST',"SOUTH", 3,3))
#EAST,WEST,SOUTH,3,3.000000

 

Comments