AttackOnNunu

Once more into the fray


  • 홈

  • About

  • 태그

  • 카테고리

  • 아카이브

  • 검색

(SW Expert Academy) 셋, 딕셔너리 - 6259번 6260번 6261번 6262번

작성일 2019-08-05 In ALGORITHM 🎯 , SW 아카데미 댓글:

7번 - 6259번

  • 시간 : 1개 테스트케이스를 합쳐서 Python의 경우 1초
  • 메모리 : 힙, 정적 메모리 합쳐서 256MB 이내, 스택 메모리 1MB 이내

문자인지 확인 - isalpha() / 숫자인지 확인 - isdigit() 함수를 사용해도 됨
배우지 않았다는 가정하에 아래와 같이 코딩함

def is_num_or_str(str_list):
ans_dict = dict(letters=0, digits=0)
for letter in str_list: # if letter.isalpha():
if (letter>='a' and letter<='z') or (letter>='A' and letter<='Z'):
ans_dict['letters'] += 1 # elif letter.isdigit():
elif letter>='0' and letter<='9':
ans_dict['digits'] += 1
return ans_dict

sentence = list(input())
ans = is_num_or_str(sentence)
print("LETTERS {}\nDIGITS {}".format(\*ans.values()))

8번 - 6260번

  • 시간 : 1개 테스트케이스를 합쳐서 Python의 경우 1초
  • 메모리 : 힙, 정적 메모리 합쳐서 256MB 이내, 스택 메모리 1MB 이내

대 소문자 구분

def is_num_or_str(str_list):
ans_dict = dict(upper=0, lower=0)
for letter in str_list:
if letter>='a' and letter<='z':
ans_dict['lower'] += 1
elif letter>='A' and letter<='Z':
ans_dict['upper'] += 1
return ans_dict

sentence = list(input())
ans = is_num_or_str(sentence)
print("UPPER CASE {}\nLOWER CASE {}".format(\*ans.values()))

**


9번 - 6261번

  • 시간 : 1개 테스트케이스를 합쳐서 Python의 경우 1초
  • 메모리 : 힙, 정적 메모리 합쳐서 256MB 이내, 스택 메모리 1MB 이내

문제에서 제시한 출력 값이랑 채점할 때 비교되는 출력 값이랑 차이가 있음(이거 찾는다고 여러번 틀림)
주석 처리된 부분 ‘# 인상 전, # 인상 후’ 이 부분은 출력 안해도됨

beer = {'하이트': 2000, '카스': 2100, '칭따오': 2500, '하이네켄': 4000, '버드와이저': 500}
print(beer)
beer_raise = {key:beer[key]\*1.05 for key in beer}
print(beer_raise)

**


10번 - 6262번

  • 시간 : 1개 테스트케이스를 합쳐서 Python의 경우 1초
  • 메모리 : 힙, 정적 메모리 합쳐서 256MB 이내, 스택 메모리 1MB 이내
letters = input()
alpha = dict()
for i in letters:
alpha[i] = alpha.get(i, 0) + 1
for key, value in alpha.items():
print("{},{}".format(key, value))

(SW Expert Academy) 셋, 딕셔너리 - 6254번 6255번 6256번 6257번 6258번

작성일 2019-08-04 In ALGORITHM 🎯 , SW 아카데미 댓글:

2번 - 6254번

  • 시간 : 1개 테스트케이스를 합쳐서 Python의 경우 1초
  • 메모리 : 힙, 정적 메모리 합쳐서 256MB 이내, 스택 메모리 1MB 이내

등록된 학생 이름 출력

def find_student(name, student_dict):
if name in student_dict:
print("{}의 전화번호는 {}입니다.".format(name, student_dict[name]))
else:
print("등록된 학생이 아닙니다.")

student = {
'홍길동':'010-1111-1111',
'이순신':'010-1111-2222',
'강감찬':'010-1111-3333'}

notice = "아래 학생들의 전화번호를 조회할 수 있습니다.\n홍길동\n이순신\n강감찬\n전화번호를 조회하고자 하는 학생의 이름을 입력하십시오."
print(notice)
name = input()
find_student(name,student)

3번 - 6255번

  • 시간 : 1개 테스트케이스를 합쳐서 Python의 경우 1초
  • 메모리 : 힙, 정적 메모리 합쳐서 256MB 이내, 스택 메모리 1MB 이내

정렬 함수의 사용법을 새롭게 익혔다

furniture = {"TV": 2000000,
"냉장고": 1500000,
"책상": 350000,
"노트북": 1200000,
"가스레인지": 200000,
"세탁기": 1000000}

r_dict = {r: furniture[r] for r in sorted(furniture, key=furniture.get, reverse=True)}

for key, value in r_dict.items():
print("{}: {}".format(key, value))

4번 - 6256번

  • 시간 : 1개 테스트케이스를 합쳐서 Python의 경우 1초
  • 메모리 : 힙, 정적 메모리 합쳐서 256MB 이내, 스택 메모리 1MB 이내

출력할 때 마다 순서가 바뀌기 때문에 Test를 한번에 통과하기 위해서 출력은 그냥 문제에 나와있는 그대로 적어서 제출했다

a = {'아메리카노': 1900, '카페모카': 3300, '에스프레소': 1900, '카페라떼': 2500, '카푸치노': 2500, '바닐라라떼': 2900}
b = {'헤이즐럿라떼': 2900, '카페모카': 3300, '밀크커피': 3300, '아메리카노': 1900, '샷크린티라떼': 3300}

c = {key: value for key, value in b.items()|a.items()}
d = {(key, value) for key, value in c.items() if value>3000}
print(d)

5번 - 6257번

  • 시간 : 1개 테스트케이스를 합쳐서 Python의 경우 1초
  • 메모리 : 힙, 정적 메모리 합쳐서 256MB 이내, 스택 메모리 1MB 이내

모든 공백제거 : str.replace(“ “, “”)
양끝 공백만 제거 : str.strip()

fruit = [' apple ','banana',' melon']
fruit_dict = {key.replace(" ",""): len(key.replace(" ","")) for key in fruit}

print(fruit_dict)

6번 - 6258번

  • 시간 : 1개 테스트케이스를 합쳐서 Python의 경우 1초
  • 메모리 : 힙, 정적 메모리 합쳐서 256MB 이내, 스택 메모리 1MB 이내
num = int(input())
num_dict = {n: n\*\*2 for n in range(1,num+1)}

print(num_dict)

(SW Expert Academy) 리스트, 튜플 - 6301번 6302번 6303번 6305번

작성일 2019-08-04 In ALGORITHM 🎯 , SW 아카데미 댓글:

24번 - 6301번

  • 시간 : 1개 테스트케이스를 합쳐서 Python의 경우 1초
  • 메모리 : 힙, 정적 메모리 합쳐서 256MB 이내, 스택 메모리 1MB 이내

3차원 배열

array_3d = [[[0 for a in range(4)] for b in range(3)] for c in range(2)]
print(array_3d)

25번 - 6302번

  • 시간 : 1개 테스트케이스를 합쳐서 Python의 경우 1초
  • 메모리 : 힙, 정적 메모리 합쳐서 256MB 이내, 스택 메모리 1MB 이내

enumerate()로 리스트의 인덱스 값을 받아 1, 5, 6번 값을 삭제(idx는 0부터 시작)

given_list = [12, 24, 35, 70, 88, 120, 155]
erased_list = [num for idx, num in enumerate(given_list) if idx!=0 and idx!=4 and idx!=5]
print(erased_list)

26번 - 6303번

  • 시간 : 1개 테스트케이스를 합쳐서 Python의 경우 1초
  • 메모리 : 힙, 정적 메모리 합쳐서 256MB 이내, 스택 메모리 1MB 이내

단순 2중 for문을 활용한 비교

list_1 = [1,3,6,78,35,55]
list_2 = [12,24,35,24,88,120,155]

ans = [num for num in list_1 for comp in list_2 if num==comp]
print(ans)

27번 - 6305번

  • 시간 : 1개 테스트케이스를 합쳐서 Python의 경우 1초
  • 메모리 : 힙, 정적 메모리 합쳐서 256MB 이내, 스택 메모리 1MB 이내

list comprehension 으로 한번에 해결 해보려고 list(set(..))을 사용해 봤지만, set() 함수는 순서가 없기 때문에 실패…

def remove_duplicated(duplicate_list):
has = []
for i in duplicate_list:
if i not in has:
has.append(i)
return has

given_list = [12,24,35,24,88,120,155,88,120,155]

print(remove_duplicated(given_list))

1…202122…33
NUNU

NUNU

개인적으로 공부하면서 정리한 내용들을 블로그에 남기고 있습니다.
99 포스트
18 카테고리
53 태그
RSS
Creative Commons
© 2021 NUNU
Powered by Hexo v3.9.0
|
Theme – NexT.Mist v7.2.0