전체 글
-
27.6 심사문제: 특정 문자가 들어있는 단어 찾기코딩도장 심사문제모음 2020. 10. 29. 20:04
문자열이 저장된 words.txt 파일이 주어집니다(문자열은 한 줄로 저장되어 있습니다). words.txt 파일에서 문자 c가 포함된 단어를 각 줄에 출력하는 프로그램을 만드세요. 단어를 출력할 때는 등장한 순서대로 출력해야 하며 ,(콤마)와 .(점)은 출력하지 않아야 합니다. 사용한 코드 1. with ~ as 문 2. readline 3. split 4. for 문 5. if 문 6. in 연산자 첫 접근 방법 한줄로 줄바꿈 없이 입력되어 있는 내용을 split을 이용한 공백을 기준으로 리스트를 만들고 반복문으로 해당 요소를 검증하면서 출력하는 방법으로 접근방법은 어렵지 않다. 첫 풀이에서는 IDLE에서 정상 작동하였으나 정답으로 인정해주지 않아 다시 한번 작성하였다. 풀이 1 은 in 연산자를 사..
-
27.5 연습문제 : 파일에서 10자 이하인 단어 개수 세기코딩도장 심사문제모음 2020. 10. 29. 18:56
단어가 줄 단위로 저장된 words.txt 파일이 주어집니다. 다음 소스 코드를 완성하여 10자 이하인 단어의 개수가 출력되게 만드세요. 풀이 먼저 words.txt 라는 파일을 만들어보는것으로 시작하자 words.txt 파일을 생성한다. a = ['anonymously\n', 'compatibility\n', 'dashboard\n', 'experience\n', 'photography\n', 'spotlight\n', 'warehouse\n'] with open('words.txt', 'w') as file: file.writelines(a) 방법 1 ## 출력값이 5가 나오는 이유 질문 while을 이용 with open('words.txt', 'r') as file: count = 0 a = No..
-
24.6 심사문제 : 높은 가격순으로 출력하기코딩도장 심사문제모음 2020. 10. 29. 00:37
표준 입력으로 물품 가격 여러 개가 문자열 한 줄로 입력되고, 각 가격은 ;(세미콜론)으로 구분되어 있습니다. 입력된 가격을 높은 가격순으로 출력하는 프로그램을 만드세요(input에서 안내 문자열은 출력하지 않아야 합니다). 이때 가격은 길이를 9로 만든 뒤 오른쪽으로 정렬하고 천단위로 ,(콤마)를 넣으세요. 사용한 코드 1. map 2. input 3. split 4. sort(reveser=True) 5. for문 6 format (문자열 포매팅) 첫 접근 방법 처음은 함수.rjust(9)를 생각하였지만 rjust 로 코드를 구성하기가 까다로웠다. 우선 map 객체로 당장 출력이 불가능하여 list로 감싼 후 sort를 이용한 내림차순 정렬을 사용하였다. sort는 map이 아닌 list에서 쓸수 있..
-
TIL. 20 set_조작하기_2TIL 2020. 10. 28. 18:59
## 집합 연산 사용하기 ## 합집합 (union) ## 합집합에서는 | 라는 기호를 사용하며 이 기호를 OR연산자라 부른다. ## 세트1 | 세트2 _구조 1 ## set.union(세트1, 세트2) _구조 2 # 세트 1, 2를 더하세요 a = {1, 2, 3, 4} b = {3, 4, 5, 6} print(a | b) print(set.union(a, b)) :: {1, 2, 3, 4, 5, 6} ## 교집합(intersection) ## 교집합에서는 & 라는 기호를 사용하며 이 기호를 AND 연산자라 부른다. ## 세트1 & 세트2 ## set.intersection(세트1, 세트2) # 세트 1, 2 모두(중복) 들어있는 값을 구하세요 a = {1, 2, 3, 4} b = {3, 4, 5, 6}..
-
26.9 심사문제 : 공약수 구하기코딩도장 심사문제모음 2020. 10. 28. 18:54
표준 입력으로 양의 정수 두 개가 입력됩니다. 다음 소스 코드를 완성하여 두 숫자의 공약수를 세트 형태로 구하도록 만드세요. 단, 최종 결과는 공약수의 합으로 판단합니다. 사용한 코드 1. map 2. set 3. input 4. split 5. for 문 6. if 문 첫 접근 방법 공약수의 개념을 알고 있다면 for 문 , if 문 사용시 어렵게 않게 어떤 범위까지 반복해야하는지, 검증은 어떤것을 해야하는지 자연스럽게 알게 되는 문제다. 입력 10 20 출력 18로 보았을때 10 의 약수는 1, 2, 5, 10 20의 약수는 1, 2, 4, 5, 10, 20 10과 20의 공약수의 합이 18이라는 것을 알 수 있다. 풀이 1. 먼저 입력값을 기준으로 해당 입력값의 공배수를 알아야하기에 a, b = ..
-
26.8 연습문제 : 공배수 구하기코딩도장 심사문제모음 2020. 10. 28. 18:40
다음 소스 코드를 완성하여 1부터 100까지 숫자 중 3과 5의 공배수를 세트 형태로 출력되게 만드세요. 풀이 3의 배수 5의 배수를 세트로 만들어주고 집합 연산자인 & (교집합)을 이용해 공배수를 구할 수 있다. 공배수의 개념만 알고 있다면 어려움이 없는 문제이다. 이번 강의에서 배운 set 표현식을 이용하자 a = {i for i in range(1, 101) if i % 3 == 0} ## 1 ~ 100까지 를 뽑아와 if 조건을 검증한다. ## i % 3 == 0 이란 의미는 i를 3으로 나누었을때의 나머지가 0 과 같을때 라는 의미로 ## // == 나누었을때의 몫 (소수점 이하 제거) // % == 나누었을때 나머지 개념이다. ## 3의 배수는 3으로 나누었을때 나머지가 0이므로 3의 배수를 ..
-
프로그래머스_LV1_크레인 인형뽑기 게임프로그래머스 문제풀이 2020. 10. 28. 01:52
문제 설명 게임개발자인 죠르디는 크레인 인형뽑기 기계를 모바일 게임으로 만들려고 합니다. 죠르디는 게임의 재미를 높이기 위해 화면 구성과 규칙을 다음과 같이 게임 로직에 반영하려고 합니다. 게임 화면은 1 x 1 크기의 칸들로 이루어진 N x N 크기의 정사각 격자이며 위쪽에는 크레인이 있고 오른쪽에는 바구니가 있습니다. (위 그림은 5 x 5 크기의 예시입니다). 각 격자 칸에는 다양한 인형이 들어 있으며 인형이 없는 칸은 빈칸입니다. 모든 인형은 1 x 1 크기의 격자 한 칸을 차지하며 격자의 가장 아래 칸부터 차곡차곡 쌓여 있습니다. 게임 사용자는 크레인을 좌우로 움직여서 멈춘 위치에서 가장 위에 있는 인형을 집어 올릴 수 있습니다. 집어 올린 인형은 바구니에 쌓이게 되는 데, 이때 바구니의 가장 ..
-
TIL.19 set 조작하기TIL 2020. 10. 27. 22:44
## set 세트 만들기 ## set = {값1, 값2, 값3} 구조 // 중괄호 a = {'strawberry', 'grape', 'orange', 'pineapple', 'cherry'} print(a) # 매번 다름 :: {'strawberry', 'grape', 'orange', 'cherry', 'pineapple'} ## set에서는 요소의 순서가 정해져 있지 않다. ## 따라서 a를 출력할 경우 코드가 동작할때마다 매번 요소의 순서가 다르게 나온다. b= {'orange', 'orange', 'cherry'} print(b) :: {'orange', 'cherry'} ## set에 들어가는 요소의 중복이 없다! (중복이 될 수 없다고 표현하기도한다) ## 따라서 중복값 'orange'는 두개..