# 첫째 줄에는 별 N개, 둘째 줄에는 별 N-1개, ..., N번째 줄에는 별 1개를 찍는 문제
# 정수 n을 입력 받는다.
# 2중 for문으로 외부 for문은 n만큼 반복, 내부 for문으로 n만큼 *을 출력한다.
def func(n):
for i in reversed(range(n)):
for _ in range(i+1):
print('*', end='')
print('')
if __name__ == "__main__":
n = int(input())
func(n)
https://www.acmicpc.net/problem/2440
# 첫째 줄에는 별 N개, 둘째 줄에는 별 N-1개, ..., N번째 줄에는 별 1개를 찍는 문제
# 하지만, 오른쪽을 기준으로 정렬한 별(예제 참고)을 출력하시오.
# 정수 n을 입력 받는다.
# 2중 for문으로 외부 for문은 n만큼 반복, 내부 for문으로 n만큼 *을 출력한다.
def func(n):
for i in reversed(range(n)):
string = ''
for _ in range(i+1):
string += '*'
print(f'{string:>{n}}')
if __name__ == "__main__":
n = int(input())
func(n)
https://www.acmicpc.net/problem/2441
# 첫째 줄에는 별 1개, 둘째 줄에는 별 3개, ..., N번째 줄에는 별 2×N-1개를 찍는 문제
# 별은 가운데를 기준으로 대칭이어야 한다.
# 정수 n을 입력 받는다.
# 2중 for문을 사용. 외부 for문은 n만큼 반복(reversed)
# 내부 for문은 n만큼 공백을, 나머지는 *을 출력
def func(n):
for i in reversed(range(n)):
for _ in range(i):
print(' ', end='')
for _ in range(2*(n-i)-1):
print('*', end='')
print('')
if __name__ == "__main__":
n = int(input())
func(n)
https://www.acmicpc.net/problem/2442
# n을 입력 받는다.
# 먼저 위의 왼쪽 별 쌓기 부분을 만든다.
# 그 다음 위의 오른쪽 별 쌓기 부분을 만든다.
# 마지막으로 아래 부분을 만든다.
def func(n):
for i in range(n):
inner(n, i)
for i in reversed(range(n-1)):
inner(n, i)
def inner(n, i):
for _ in range(i+1):
print('*', end='')
for _ in range(2*(n-i)-2):
print(' ', end='')
for _ in range(i+1):
print('*', end='')
print('')
if __name__ == "__main__":
n = int(input())
func(n)
https://www.acmicpc.net/problem/2445
이번 주 팀 프로젝트 업데이트 내용
• 지역 정보 API가 추가되었습니다.
= url : .../database/showregion/
= 이제부터 지역 정보를 서버에 저장하게 되었습니다.
= [서울, 경기, 부산/대구/경상] 3가지 지역을 서버에 저장합니다.
= 이 API는 서버에 저장된 지역 정보를 get으로 얻을 수 있습니다.
• '보고싶어' API가 추가되었습니다.
= url : .../database/checkwish/
= 사용자가 보고싶어를 클릭하면 사용자의 보고싶어 목록에 추가됩니다.
= 사용자가 보고싶어 상태가 아닌 영화의 보고싶어를 클릭하면 boolean 타입의 True 값을 반환합니다. 반대로 보고싶어를 취소하게 되면 False 값을 반환합니다.
= 이 API는 movie_id 라는 변수명(영화 id 값)을 POST 형식으로 서버에 전송해야 합니다.
= redoc 문서에 is_wished가 string으로 나오지만 실 데이터는 boolean 타입입니다. 이 부분은 추후에 수정하겠습니다.
• 영화 디테일 API가 추가되었습니다.
= url : .../database/movieDetail/?movie=
= movie에 영화의 아이디 값을 입력해야 합니다.
= ex) .../database/movieDetail/?movie=2
• 개인정보 수정 정보 출력 API가 추가되었습니다.
= url : .../accounts/showMyInfo/
= 마이페이지에서 수정하기 버튼을 눌러서 출력되는 get 정보들입니다.
= 이번에 새로 추가된 선호영화관의 경우 아래와 같은 형식으로 받아보실 수 있습니다. (id는 integer 타입입니다.)
[
{id:0, theater : string, region: string},
{id:1, theater : string, region: string},
{id:2, theater : string, region: string}
]
• 개인정보 수정 API가 추가되었습니다.
= url : .../accounts/updateMyInfo/
= 마이페이지에서 수정하기 버튼을 누른 페이지에서 개인정보들을 수정하여 post로 서버에 보낼 수 있습니다.
= 개인정보는 핸드폰 번호, 비밀번호, 선호영화관을 수정할 수 있습니다.
= 이번에 추가된 선호영화관 또한 수정할 수 있습니다. 아래 create API 부분을 참조해 주세요.
• create API가 변경되었습니다.
= API 문서 이름 : UserCreateAPI -> userCreate
= 이제 선호영화관을 입력할 수 있습니다. 아래와 같은 형식, 변수명으로 보내시면 됩니다.
= 선호영화관 입력을 생략할 경우 아래 예시의 값으로 저장됩니다.
[
{id : 0, theater : '', region: ''},
{id : 1, theater : '', region: ''},
{id : 2, theater : '', region: ''},
]
• UserCreateInPreferTheaterList API가 추가되었습니다.
= url : .../accounts/showCreate/
= 유저 생성시 옵션을 선택할 수 있는 선호영화관의 리스트를 get으로 얻을 수 있습니다.
• showPreferTheater API가 추가되었습니다.
= url : .../accounts/updatePreferTheater/
= 마이페이지 선호 영화관 등록/수정 버튼을 누르면 GET을 통해 선호 영화관을 출력 할 수 있습니다.
• preferTheater API가 추가되었습니다.
= url : .../accounts/modifyPreferTheater/{id}
= 마이페이지 선호 영화관 등록/수정 버튼을 누르면 POST를 통해 선호 영화관을 수정할 수 있습니다.
= {id}에 수정하려는 선호영화관 id 값을 넣으면 됩니다. id는 1순위는 0, 2순위는 1, 3순위는 2의 값을 가집니다.
• reservationScheduleList의 포스트맨 입력 방식이 변경되었습니다.
= 기존에는 영화 3개를 검색한다면 하나의 movie 키에 '알라딘_토이스토리4_라이온킹'과 같은 방식으로 검색했지만 업데이트 이후 부터는 하나의 movie 키에는 하나의 영화 값만 가질 수 있습니다. 영화를 2개 검색하고 싶다면 movie의 키를 두 개 생성 후 각각 검색을 원하는 영화 제목을 값으로 입력하시면 됩니다. (theater 또한 동일합니다.)
• 업데이트 후 데이터베이스 데이터 변동사항
= 2019-08-03 ~ 2019-08-07 까지의 영화 예매 가능 데이터를 가집니다.
= 상영 예정 영화 4개가 추가되었습니다(총 11개 영화). : 47미터 2, 동키 킹, 유열의 음악앨범, 인비저블 위트니스
= 모든 좌석은 기본적으로 예약되어 있지 않은 상태입니다.
= 테스트 아이디는 그대로 남아있습니다.
• reservationSecond의 API 주소가 변경되었습니다.
= url : .../database/reservationSecond/
• 현재 API 문서에 선호영화관(preferTheater)의 타입이 string으로 나오는 문제가 있습니다만 실 데이터는 배열 안의 JSON 형식의 타입이니 참고해주세요.
서버에 적용 하면서 변경한 점
• reservationScheduleListView()
= 영화, 지점을 배열로 받을 수 있게 수정
= 영화, 지점을 배열에 맞게 필터할 수 있도록 수정
= 영화, 지점 검색이 각 3개 초과하지 않도록 하는 것을 배열에 맞게 수정
= 스케줄에 좌석이 하나도 예매 안되었을 때 seat_number가 출력이 되지 않도록 수정
• check_wishmovies_view()
= POST method로 수정
= redoc 문서에 추가
• show_region_view()
= redoc 문서에 추가
• reservationSecondView()
= 예약되어 있는 좌석(booked_seat_numbers)이 없는 경우와 있는 경우를 if문으로 분기하는 구문 추가
• create_objects_seat()
= 디비 데이터 생성 스크립트에 좌석 넘버 자동 생성에 주석 처리
• Seat(models.Model)
= save() 빈 리스트 저장시 seat_count가 1로 카운트 되는 문제 수정
• 영화 디테일
= description 추가
= create_objects_movie_movie_detail() description 필드 입력 추가
이번 주에 대대적으로 추가된 내용이 있어서 밤도 좀 새고 했더니 좀 바빴다.
하면서 안되는 부분이 굉장히 많았고, 어려운 부분도 많았지만 결국 돌아가는데
'weekly learning' 카테고리의 다른 글
웹 프로그래밍 스쿨 21주차 (0) | 2019.07.28 |
---|---|
웹 프로그래밍 스쿨 20주차 (0) | 2019.07.20 |
웹 프로그래밍 스쿨 19주차 (0) | 2019.07.14 |
웹 프로그래밍 스쿨 18주차 (0) | 2019.07.07 |
[웹 프로그래밍 스쿨 17주차] 쉬어가는 주 (0) | 2019.06.29 |