우선 random함수에 대해서 알아야 한다.

 

random함수를 하기 위해서는 random함수를 import시켜야 한다. 

import random

 

이번에 사용할 random이 형태는 range의 값을 받아와서 random하게 숫자를 출력하는 문장을 사용할 것이다.

random.randrange(시작값, 끝값+1)

이런식으로 시작값~끝값의 숫자를 랜덤으로 뽑아주도록 하는 것이 랜덤함수이다.

random으로 range를 first number ~ last number로 해서 숫자를 뽑는다는 뜻이다.

 

다음에는 if문을 잘 봐야한다.

lotto라는 list에서 .count를 통해 이미 뽑은 숫자들을 확인하면서,

==0을 통해 만약 한 번도 출력이 되지 않았다면,

.append를 함으로써 num값을 lotto라는 list에 추가를 해주는 것이다 (아래와 같이 코드가 작성된다)

if lotto.count(num)
	lotto.append(num)

 

다음으로 6개의 숫자를 뽑기 위해서 len()를 통해 리스트의 길이가 6이 넘어갈 때, 즉 7이 될 때 break를 한다.

if len(lotto) > 6:
        break

 

그리고 마지막으로 추첨된 로또 번호들을 출력해주면 된다!

for i in range(0, 6): 
    print("%d " %lotto[i], end="")

참고로 만약 숫자가 오름차순으로 정렬이 되기를 원한다면 sort()를 사용하는 것도 가능하다.

lotto.sort()

 


 

완성된 코드는 이렇게 된다

파이썬으로 간단한 계산기 만들기 프로그램이다.

일단 나눗셈의 경우 integer(정수) 값만 출력이 되는 것으로 했다.


코드 작성 순서는 다음과 같다

 

1. 전역변수를 설정한다.

2. calc()함수를 만든다.

3. 메인코드를 통해 총 4번 반복을 해서 사칙연산을 한 번씩 출력해볼 수 있도록 한다.

4. 계산연산자(oper)와 숫자 2개(var1, var2)를 받는다.

5. calc함수를 불러와서 계산한다.

6. 출력한다.

 


 

 

[문제]

예제를 보고 규칙을 유추한 뒤에 별을 찍어 보세요.


[입력]

첫째 줄에 N(1 ≤ N ≤ 100)이 주어진다.


[출력] 

첫째 줄부터 2×N-1번째 줄까지 차례대로 별을 출력한다.

 

백준에서 제시하는 입출력 예시

 

 


 

사실 이 문제는 상당히 헤맸다..

특히 어려웠던 부분은 for의 초기화식이다. 

for (k = 2 * num - 2 * i - 1; k > 0; k--)  << 이 부분을 찾아내는 것이 특히 어려웠다

그래도 for문을 잘 이해를 하고,

각 라인에 얼마만큼의 숫자나 공백이 어떠한 조건을 통해서 얼마만큼이 출력되어야 하는지를 고민하다보면 결국 답이 나온다.

 

여기에서의 간단한 팁은 아마 for문을 2개로 나눠서 각각 피라미드와 역피라미드가 출력되도록 해야 한다는 것이다.

 

이렇게 뿐만 아니라, 다양한 방법의 코드가 작성될 수 있다.

 

출처 : https://www.acmicpc.net/problem/2446

[문제]

예제를 보고 규칙을 유추한 뒤에 별을 찍어 보세요.


[입력]

첫째 줄에 N(1 ≤ N ≤ 100) 주어진다.


[출력] 

첫째 줄부터 2×N-1번째 줄까지 차례대로 별을 출력한다.

 

백준에서 제시하는 입출력 예시

 

 


 

처음 내가 시도한 코드는 다음과 같다.

(참고로, 모양은 정답인 코드와 똑같이 나오지만 출력을 하면 개행이 한 번 되고 별의 출력이 시작된다.)

"출력 형식이 잘못되었습니다" 이 나온다

 


위 코드의 출력결과

 

이것을 올바르게 하기 위해서는 수정이 필요했는데, 

line 9와 10에서 수정이 필요하다.

출력을 하는데 있어서 0번째 줄에서 0이 아닌 첫번째 별이 나와야 하기 때문이다.

따라서, 이 부분을 수정하면 다음과 같이 바뀐다.

 

이 코드가 개행없이 출력이 된다.


위 코드의 출력결과

출처: https://www.acmicpc.net/problem/2523

'코딩 문제풀이 및 연습 > [C언어]백준' 카테고리의 다른 글

[백준 11720번] 숫자의 합  (0) 2020.08.14
[백준 2446번] 별 찍기 - 9  (0) 2020.08.12
[백준 10951번] A+B - 4  (0) 2020.08.08
[백준 10039번] 평균 점수  (0) 2020.08.08
[백준 8389번] Sum  (0) 2020.08.08

[문제]

두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오.

 

백준에서 추가로 제시하는 시간&메모리 제한


[입력]

입력은 여러 개의 테스트 케이스로 이루어져 있다.

각 테스트 케이스는 한 줄로 이루어져 있으며, 각 줄에 A와 B가 주어진다. (0 < A, B < 10)


[출력] 

각 테스트 케이스마다 A+B를 출력한다.

 

 

 

 


 

 

이렇게 scanf에서 반환이 제대로 이루어져야 맞췄다고 나온다

 

Line 5에 의해서 애를 좀 먹었다... 아래와 같이 프로그램을 작성하면 예제 입력 및 출력은 똑같이 나오지만, 출력초과의 오류가 나온다.

 

 

이렇게 하면 "출력초과"가 나온다.

 

출처 : https://www.acmicpc.net/problem/10951

'코딩 문제풀이 및 연습 > [C언어]백준' 카테고리의 다른 글

[백준 11720번] 숫자의 합  (0) 2020.08.14
[백준 2446번] 별 찍기 - 9  (0) 2020.08.12
[백준 2523번] 별 찍기 - 13  (0) 2020.08.11
[백준 10039번] 평균 점수  (0) 2020.08.08
[백준 8389번] Sum  (0) 2020.08.08

[문제]

상현이가 가르치는 아이폰 앱 개발 수업의 수강생은 원섭, 세희, 상근, 숭, 강수이다.

어제 이 수업의 기말고사가 있었고, 상현이는 지금 학생들의 기말고사 시험지를 채점하고 있다. 기말고사 점수가 40점 이상인 학생들은 그 점수 그대로 자신의 성적이 된다. 하지만, 40점 미만인 학생들은 보충학습을 듣는 조건을 수락하면 40점을 받게 된다. 보충학습은 거부할 수 없기 때문에, 40점 미만인 학생들은 항상 40점을 받게 된다.

학생 5명의 점수가 주어졌을 때, 평균 점수를 구하는 프로그램을 작성하시오.


[입력]

입력은 총 5줄로 이루어져 있고, 원섭이의 점수, 세희의 점수, 상근이의 점수, 숭이의 점수, 강수의 점수가 순서대로 주어진다.

점수는 모두 0점 이상, 100점 이하인 5의 배수이다. 따라서, 평균 점수는 항상 정수이다. 


[출력] 

첫째 줄에 학생 5명의 평균 점수를 출력한다.

 


 

문제를 잘 읽어보면 40점 미만은 무조건 40점을 받는 다는 사실을 알 수 있다.
입출력 예시

 

출처: https://www.acmicpc.net/problem/10039
출처: Olympiad > 일본정보올림피아드 > 일본정보올림피아드 예선 > JOI 2014 예선 1번

'코딩 문제풀이 및 연습 > [C언어]백준' 카테고리의 다른 글

[백준 11720번] 숫자의 합  (0) 2020.08.14
[백준 2446번] 별 찍기 - 9  (0) 2020.08.12
[백준 2523번] 별 찍기 - 13  (0) 2020.08.11
[백준 10951번] A+B - 4  (0) 2020.08.08
[백준 8389번] Sum  (0) 2020.08.08

[문제]

John got a bad mark in math. The teacher gave him another task. John is to write a program which computes the sum of integers from 1 to n. If he manages to present a correct program, the bad mark will be cancelled.

Write a program which:

  • reads the number n from the standard input,
  • computes the sum of integers from 1 to n,
  • writes the answer to the standard output.

[입력]

The first and only line of the standard input contains one integer n (1 ≤ n ≤ 10 000).


[출력] 

One integer is to be written to the standard output. This integer should be the sum of integers from 1 to n.


다시 말해,  n을 입력받았을 때, n까지의 합을 구하는 프로그램을 작성하는 것.

for문을 통해서 다음과 같이 간단히 작성할 수 있다.

 


 

[코드 작성]

처음에 틀렸었는데, 이유는 sum의 초기화가 이루어지지 않았기 때문.. 꼭 초기화를 할 수 있도록 하자

 

출처: Contest > Algorithmic Engagements > PA 2006 0-1번
출처: https://www.acmicpc.net/problem/1016

+ Recent posts