코딩,해볼까

04.27. 다양한 출력 방법 / 2차원 배열 / 리스트 컴프리헨션 / 시간복잡도 테스트 코드 본문

Back/TIL

04.27. 다양한 출력 방법 / 2차원 배열 / 리스트 컴프리헨션 / 시간복잡도 테스트 코드

떠굥 2023. 4. 28. 00:27

0.  오늘의 공부

1) 강의..2) 알고리즘 풀이

📍 프로그래머스 - 코딩 기초 트레이닝

 

Day 1 출력


✔ 문자열 출력하기

print(f"a = {a}\nb = {b}")

print('a = {} \nb = {}'.format(a,b))

print("a =",a) 
print("b =",b) 

a = "a = " + str(a) + "\n"
b = "b = " + str(b)
print(a + b)

 

✔ a와 b 출력하기

✔ 문자열 반복해서 출력하기
대소문자 바꿔서 출력하기
   실패중.. 성공!!

 

 

📍 프로그래머스 - 코딩 기초 트레이닝 특별한 2차원 배열 1

 

    answer = []
    for i in range(n):
        ainner = []
        for j in range(n): 
            if i == j:
                ainner.append(1)
            else:
                ainner.append(0)
        answer.append(ainner)

 

내가 이해해보고 싶어서 최대한 쉽게 만들어봤는데, 가독성이 좋다고 칭찬받았다..////
너무 기분이 조아 고래는 덩실덩실 춤을 춥니다 딴스딴스!!🐳🎶🎵🌊 

아래 식처럼 줄여보고 싶었는데 문제의 1을 넣을 방법을 찾지 못했다.

 

# 위 아래는 같은 코드이다.

[ [0 for j in range(n)] for i in range(n) if i == j]

[ [0] * n for i in range(n) ]

 

 

✔ 내가 찾아본 2차원 배열 개념 강의들

[우리밋] 2차원 배열 개념 뿌수기-실전응용

[점프 투 파이썬] for와 range

[점프 투 파이썬] for문의 리스트 컴프리헨션 사용하기

 

 


1.  문제점

대소문자 바꿔서 출력하기 문제에서 처음보는 오류를 만났다. 이 오류는 무엇인지 궁금하다.

조건을 걸었는데도 동일한 결과가 나온다.

 

 

 


2. 시행착오

 

 

 


3. 해결방법

팀원들과 코드리뷰 시간에 이 문제에 대해 쉽게 알아냈다.

내가 정해진 틀 str = input() 을 임의로 변경하여 생긴 일이었다.

 

 

 


4. 알게된 점

 

1) 대소문자 확인 방법에는 .isupper, .islower (결과표기는 bool) 보다 더 쉬운 방법이 있다. .swapcase()

 

# 이 한 줄로 대소문자 변경하기 끝
print(str.swapcase())

 

2) 형에 따라서 어떤 함수를 사용할 수 있는지 보여주는 dir() 함수

아직 _ _함수_ _ 에는 익숙하지 않아서 마지막에 나오는 친구들만 참고하면 좋겠다.

 

print(dir('a'))
print(dir(0))
print(dir(True))
print(dir({}))
print(dir([]))

 

 

3) 시간복잡도 테스트 코드

내 코드 계산에도 좋지만 보다 효율이 좋은 코드를 찾아보고 싶을 때 도움이 될 코드!

팀원분께서 공유해주신 소중한 재산. 블로그에 박제!

 

import time
start_time = time.time() # 측정 시작


# 프로그램 소스코드


end_time = time.time() # 측정 종료
print("time:", end_time - start_time) # 수행 시간 출력

 

Comments