파이썬 알고리즘 연습할 때 기초 100제를 풀어보라고 해서 한 번 풀어보는데
처음에는 출력과 관련된 문제가 많아서 쉬웠다.
자바랑 파이썬 연습 하기 위해서 파이썬 연습 하다가
같은 문제를 자바랑 파이썬으로 풀어볼 생각이다..!!
6007 : [기초-출력] 출력하기07(py)
# 출력하기
"C:\Download\'hello'.py"
(단, 따옴표도 함께 출력한다.)
* \도 안전하게 출력하려면 \\를 사용하는 것이 좋다.
아래처럼 예시를 하나 만들고 풀었다.
print(" C:\\Download\\ ") # C:\Download\
print(" \\ \" \ ' ") # \ " \ '
답
print('"C:\\Download\\\'hello\'.py"')
'\n' 라인 피드(Line feed)
'\r' 캐리지 리턴(Carriage return)
'\t' 탭(Tab)
'\'' 작은따옴표(Literal single quote)
'\"' 큰따옴표(Literal double quote)
'\\' 백슬래시(Literal backslash)
\' → '
\" → "
6008 : [기초-출력] 출력하기08(py)
print("Hello\nWorld")
위 코드를 정확히 그대로 출력하시오.(공백문자 주의)
print('print("Hello\\nWorld")')
[1, 2, 3, 4], [10, 9, 8, 7] 을 입력 값으로 받았을 때 1, 2, 3, 4, 7, 8, 9, 10 으로 출력시키기
자바로 푸는 것보다 나는 파이썬이 편하기 때문에 파이썬 먼저 풀어봤다.
문제점 발견
1. 하나 통으로 출력되지 않게 하기
잘못된 출력 결과 ex)
for i in par :
print(i) # 1, 2, 3, 4, 10, 9, 8, 7 ❌
2. 문자열 정렬하기
잘못된 출력 결과 ex)
10, 2, 3, 4, 7, 8, 9, 1 ❌
처음엔 replace와 int를 이용하려고 했는데 오류가 났다.
몇번의 삽질 끝에 순서대로 정렬까지 성공했다.
먼저 입력 값을 par이라는 변수로 받고 양 끝 대괄호를 슬라이싱으로 뽑고
숫자 안에있는 대괄호는 replace로 없앴다.
par = par[1:-1].replace("]","").replace("[","")
그 다음 문제로 1번의 문제 때문에 따로 구분을 할 수 있을게 뭐 있을까 하다가
",'(쉼표)를 기준으로 뽑아내기로 헀다.
par = par.split(', ')
정렬을 당연히 sort로만 생각하다가 계속 None이 나와서 뭐가 문제인지 검색했다가
sorted로 실행하게 되었다.
- 원본 내용을 바꾸지 않고, 정렬한 값을 반환한다.
- List, tuple, Dictionary, str에 모두 사용 가능하다.
- key 를 통하여 정렬할 기준을 정할 수 있다.
- reverse 가 True이면 내림차순, False이면 오름차순으로 정렬된다.
sort()와 sorted()의 가장 큰 차이점은
sorted()는 리스트와 문자열 둘 다 적용이 가능하지만 sort()는 리스트만 가능하다.
출처 : 파이썬 (Python) - (정렬 총정리) sort( ), sorted( ) , 특정 key를 기준으로 정렬하기 ,이중 리스트 정렬 , 다중 조건 정렬
출처 : [python] sort()와 sorted() 비교
내림차순이 reverse=True이기 때문에 reverse=False로 설정했다.
print(sorted(par, reverse=False))
위 코드로 진행했더니 [' 10', ' 2', ' 3', ' 4', ' 7', ' 8', ' 9', '1'] 로 출력되었다. ❓❓❓
reverse=True로 바꾸면 아래와 같이 나온다.
print(sorted(par, reverse=True))
['1', ' 9', ' 8', ' 7', ' 4', ' 3', ' 2', ' 10']
또 이것저것 찾아보다가 sort(key=int) 코드를 보게 되었고 sorted에 넣게 되었다.
* key 를 통하여 정렬할 기준을 정할 수 있다.
print(sorted(par, key=int))
['1', ' 2', ' 3', ' 4', ' 7', ' 8', ' 9', ' 10']
이제 제대로 출력이 되었고 대괄호와 작은 따옴표만 없애면 원하는 결과가 나올 수 있다.
answer = ""
for i in par :
answer = answer + i + ", "
print(answer[0:-2])
원래는 아래 코드로 진행하려 했으나 마지막 출력할 때 쉼표가 같이 나와서 진행하지 않았다.
for i in par :
print(i, end=", ")
'TIL' 카테고리의 다른 글
199일차(모험 108일차) - 프로젝트 (0) | 2022.04.01 |
---|---|
198일차(모험 107일차) - 복습 (0) | 2022.03.31 |
196일차(모험 105일차) - 컴포넌트 스캔과 의존관계 자동 주입 시작하기 (0) | 2022.03.29 |
195일차(모험 104일차) - @Configuration과 바이트코드 조작의 마법 (0) | 2022.03.29 |
인스타그램 실행과정 gif (0) | 2022.03.28 |