리스트(List)

 

리스트 이름=[요소1, 요소2, ...]

리스트의 기본 구조입니다.

 

리스트는 대괄호 []를 사용하여 감싸줍니다.

 

a = list()
b = []

빈 리스트를 만드는 방법입니다.

 

a=[1,2,3]
b=['aa','bb']
c=['aaa',1,2]

리스트 안의 요소는 서로 같은 형식이지 않아도 괜찮습니다.

 

a=[1,2,3,4,5]

# 출력>>1
print(a[0])

# 출력>>4
print(a[0]+a[2])

# 출력>>5
print(a[-1])

리스트의 index는 0부터 시작합니다.

 

a[-1]은 리스트의 마지막 요소의 값을 의미합니다.

 

a=[1,2,3,4,5]

# 출력>>[1, 2]
print(a[0:2])

# 출력>>[1, 2]
print(a[:2])

# 출력>>[3, 4, 5]
print(a[2:])

리스트에서 슬라이싱은 사용 가능합니다.

 

a[0:2] : 리스트 a의 첫 번째 요소부터 세 번째 요소 전까지의 값을 나타냅니다.

a[:2] : 리스트 a의 첫 번째 요소부터 세 번째 요소 전까지의 값을 나타냅니다.

a[2:] : 리스트 a의 세 번째 요소부터 마지막 요소까지의 값을 나타냅니다.

continue

 

반복문의 나머지 부분을 실행시키지 않고 다음 반복을 시작시킬 경우 사용합니다.

 

a=1

while a < 10:

    if a == 5:
        a= a+1
        continue

	# 결과>>1 2 3 4 6 7 8 9 
    print(a, end=' ')
    a= a+1
for i in range(1,10):
    if i == 5:
        continue

	# 결과>>1 2 3 4 6 7 8 9 
    print(i, end=' ')

숫자 1부터 9까지 출력하는 도중 continue를 이용해 숫자 5를 제외하고 문장을 출력하도록 했습니다.

 

 

 break

 

반복문을 즉시 종료시킬 경우 사용합니다.

 

a=1

while True:
    
    if a == 5:
        break

    # 결과>>1 2 3 4
    print(a, end=' ')
    a=a+1
for i in range(1,10):
    
    if i == 5:
        break
    
    # 결과>>1 2 3 4
    print(i, end=' ')

break를 이용해 숫자 5일때 반복문을 종료시키도록 했습니다. 

 1084 : [기초-종합] 빛 섞어 색 만들기(설명)


빨강(red), 초록(green), 파랑(blue) 빛을 섞어
여러 가지 빛의 색을 만들어 내려고 한다.

빨강(r), 초록(g), 파랑(b) 각각의 빛의 개수가 주어질 때,
(빛의 강약에 따라 0 ~ n-1 까지 n가지의 빛 색깔을 만들 수 있다.)

주어진 rgb 빛들을 다르게 섞어 만들 수 있는 모든 경우의 조합(r g b)과
총 가짓 수를 계산해보자.


예시
int i, j, k, c=0;
int r, g, b;
scanf("%d%d%d”, &r, &g, &b);

for(i=0; i for(j=0; j for(k=0; k {
printf("%d %d %d\n", i, j, k);
c++;
}

printf("%d ", c);

 
정답

a,b,c=input().split(' ')
a=int(a)
b=int(b)
c=int(c)
d=0

for i in range(a):
    for j in range(b):
        for k in range(c):
            print('%d %d %d' %(i,j,k))
            d=d+1

print(d)

 

 


CodeUp 기초 100제 : https://codeup.kr/problemsetsol.php?psid=23

 1083 : [기초-종합] 3 6 9 게임의 왕이 되자!(설명)


3 6 9 게임을 하던 영일이는 3 6 9 게임에서 잦은 실수로 계속해서 벌칙을 받게 되었다.
3 6 9 게임의 왕이 되기 위한 마스터 프로그램을 작성해 보자.

참고
중첩의 원리
반복 실행 구조 안에 선택 실행 구조를 자유롭게 중첩할 수 있다.

예시
int i;
for(i=1; i<=100; i++) //1부터 100까지 반복
{
if(i%3==0 || i%5==0) printf("%d ", i); //3또는 5의 배수인 경우 그 수 출력
}

** 3 6 9 게임은?
여러 사람이 순서를 정해 순서대로 수를 부르는 게임이다.
만약 3, 6, 9 가 들어간 수를 자신이 불러야 하는 상황이면, 대신 "박수" 를 쳐야 한다.
33까지 진행했다면? "짝짝"과 같이 박수를 두 번 치는 형태도 있다.

 

 

정답

a=input()
a=int(a)

for i in range(1,a+1):
    if i % 3 ==0:
        print('X',end=' ')
    else:
        print(i,end=' ')

 

 


CodeUp 기초 100제 : https://codeup.kr/problemsetsol.php?psid=23

 1082 : [기초-종합] 16진수 구구단? 


16진수(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F)를 배운
영일(01)이는 16진수끼리 곱하는 16진수 구구단?에 대해서 궁금해졌다.

A, B, C, D, E, F 중 하나가 입력될 때,
1부터 F까지 곱한 16진수 구구단의 내용을 출력해보자.
(단, A ~ F 까지만 입력된다.)

 

 

정답

a=input()
aa=int(a,16)

for i in range(1,16):  
    b=int(aa*i)
    print('%s*%X=%X'%(a,i,b))

 

 


CodeUp 기초 100제 : https://codeup.kr/problemsetsol.php?psid=23

 1081 : [기초-종합] 주사위를 2개 던지면?(설명)


1부터 n까지, 1부터 m까지 숫자가 적힌
서로 다른 주사위 2개를 던졌을 때 나올 수 있는 모든 경우를 출력해보자.

참고
중첩의 원리...
반복 실행 구조도 조건 실행 구조와 마찬가지로 중첩의 원리가 적용된다.
반복 실행 구조를 중첩하면 원하는 반복 구조를 다양하게 만들어 낼 수 있다.

예시
int i, j;
int n=3, m=6;
for(i=1; i<=n; i++)
{
for(j=1; j<=m; j++)
{
printf("%d %d ", i, j);
}
}

의 코드는
바깥쪽의 i가 1부터 n까지로 바뀌는 각각의 동안에
안쪽의 j가 1부터 m까지 변하며 출력된다.

중첩 반복되는 코드블록의 내용이 논리적으로 한 개의 단위이기 때문에
코드블록 기호를 생략하면 아래와 같이 작성할 수도 있다.

int i, j;
int n=3, m=6;
for(i=1; i<=n; i++)
for(j=1; j<=m; j++)
printf("%d %d ", i, j);

반복 실행구조를 사용할 때에는
반복횟수를 기록해 두기 위해 i, j와 같은 변수를 선언해 사용해야 한다.

 

 

정답

a,b=input().split(' ')
a=int(a)
b=int(b)

for i in range(1,a+1):
    for j in range(1,b+1):
        print(i,j)

 

 


CodeUp 기초 100제 : https://codeup.kr/problemsetsol.php?psid=23

+ Recent posts