Programming
[프로그래머스] 평균 구하기
[프로그래머스] 평균 구하기
2020.10.09def solution(arr): temp = 0 num = len(arr) for i in arr : temp += i return temp / num
[프로그래머스] 핸드폰 번호 가리기
[프로그래머스] 핸드폰 번호 가리기
2020.10.09문제에서는 문자열 s가 주어지고, 뒷 4자리를 제외한 문자들을 *로 처리한다. def solution(phone_number): temp = len(phone_number) return '*' * (temp - 4) + phone_number[temp-4:] 먼저 문자열의 길이를 파악하고, *의 개수를 temp - 4로 정해, 마지막 4자리를 제외한 나머지 문자열을 *로 변환한다. 그후 슬라이싱을 이용해 뒷 4자리를 추가해 준다.
[프로그래머스] 나누어 떨어지는 숫자 배열
[프로그래머스] 나누어 떨어지는 숫자 배열
2020.10.09def solution(arr, divisor): result = [] count = 0 Fail = [-1] for i in arr : if i % divisor == 0 : result.append(i) else : count += 1 print(count) if len(arr) == count : return Fail return sorted(result) 먼저 원소중 divisor로 나눠지는 것들을 result 리스트에 담고, 그렇지 않다면 count의 개수를 증가시킨다. 그후, 원소의 개수와 count의 개수가 같다면, 나누어지는것들이 없다는 뜻이기에 -1을 반환한다.
[프로그래머스] 문자열 내 p와 y의 개수
[프로그래머스] 문자열 내 p와 y의 개수
2020.10.09def solution(s): p = s.count('p') P = s.count('P') P_num = p + P y = s.count('y') Y = s.count('Y') Y_num = y + Y if P_num == Y_num : return True else : return False count 함수를 통해 p와 P, y와 Y의 개수를 찾고, 조건식을 이용해 결과값을 반환한다.
[프로그래머스] 2016년
[프로그래머스] 2016년
2020.10.07def solution(a, b): from datetime import date Month = a Day = b week = ['MON','TUE','WED','THU','FRI','SAT','SUN'] result = week[date(2016,Month,Day).weekday()] return result 다른 사람들의 풀이를 보니 사전을 이용하는 방법도 있다. def getDayName(a,b): day_name = ['THU', 'FRI', 'SAT', 'SUN', 'MON', 'TUE', 'WED'] month_dict = { "1":31, "2":29, "3":31, "4":30, "5":31, "6":30, "7":31, "8":31, "9":30, "10":31, "11":30, "12"..
[프로그래머스] 문자열 다루기 기본
[프로그래머스] 문자열 다루기 기본
2020.10.06def solution(s): if len(s) == 4: if s.isdigit() == True: return True else : return False elif len(s) == 6: if s.isdigit() == True: return True else : return False else : return False isdigit 함수를 통해서 문자열이 숫자로만 이루어졌는지 확인할수 있다.
[프로그래머스] 두 정수 사이의 합
[프로그래머스] 두 정수 사이의 합
2020.10.06def solution(a, b): if a == b: return a else: if a > b : a, b = b, a return sum(range(a,b+1)) a와 b의 값이 같다면, a를 반화해주고, 그렇지 않다면, 먼저 a와 b가 어떤 관계인지 알아야 한다. 만약 a의 값이 b보다 크게 될경우, 작은 수를 앞에 놔줘야 하므로, a, b = b, a를 통해서 위치를 바꿔주고, sum함수를 통해서 두 정수 사이의 값들을 더해준다.
[프로그래머스] 가운데 글자 가져오기
[프로그래머스] 가운데 글자 가져오기
2020.10.06가운데 글자를 반환하는 함수를 작성해 보자. 먼저 문자열의 길이를 len 함수를 통해서 파악한 수, 짝수개인지 홀수개인지 확인하기 위해서 연산을 진행했다. value = num % 2 if value == 1: number = int(num / 2) result = s[number] return result else : number = int(num / 2) result = s[number - 1] + s[number] return result 만약에 홀수개이라면, number의 문자열 길이를 2로 나누고, 그 나눈값의 몫의 정수형을 되돌려준다. 하지만, 짝수개라면, 두글자를 반화해야하므로, 몫에서 1을 뺀값과 몫을 되돌려준다.
[프로그래머스] 서울에서 김서방 찾기
[프로그래머스] 서울에서 김서방 찾기
2020.10.06문제에서는 리스트를 주어지고, 그 리스트 안에는 무조건 김서방이 존재한다고 한다. 파이썬에서는 리스트에 특정값이 있다면, index 함수를 이용해서 어느 위치에 있는지 알수 있다. 다른 사람의 풀이를 보면, 이렇게 하는 방법도 있다고 한다.
[백준] 4673 - 셀프 넘버 (파이썬 / C++)
[백준] 4673 - 셀프 넘버 (파이썬 / C++)
2020.04.09general = set(range(1, 10001)) change = set() for i in range(1, 10001): for j in str(i): i += int(j) change.add(i) result = general - change for i in sorted(result): print(i) #include using namespace std; bool selfnum[10001]; int main(void) { memset(selfnum, true, sizeof(selfnum)); for(int i=1; i
[백준] 15596 - 정수 N개의 합 (파이썬)
[백준] 15596 - 정수 N개의 합 (파이썬)
2020.04.09def solve(a): ans = 0 for i in a: ans += i return ans
[백준] 4344 - 평균은 넘겠지 (파이썬) (C)
[백준] 4344 - 평균은 넘겠지 (파이썬) (C)
2020.04.09import sys input = sys.stdin.readline N = int(input()) for i in range(N): list_temp = list(map(int, input().split(' '))) average = sum(list_temp[1:]) / list_temp[0] count = 0 for j in list_temp[1:]: if j > average: count += 1 print(str('%.3f' % round(count / list_temp[0] * 100, 3)) + '%') #include int main() { int num; float sum=0; float count=0; int stu_num; int score[1000]; scanf("%d", &num); ..
[백준] 8958 - OX퀴즈 (파이썬) (C++)
[백준] 8958 - OX퀴즈 (파이썬) (C++)
2020.04.09N = int(input()) for i in range(N): score = 0 cnt = 0 result = input() for j in range(len(result)): if result[j] == 'O': cnt += 1 score += cnt elif result[j] == 'X': score += 0 cnt = 0 print(score) #include #include using namespace std; int main() { int num; cin >> num; int *save_total = new int[num]; for (int i = 0; i > answer; for..
[백준] 1546 - 평균 (파이썬)
[백준] 1546 - 평균 (파이썬)
2020.04.08N = int(input()) score = list(map(int, input().split())) modify = [] for i in score: modify.append(i/max(score) * 100) print("%0.2f" % (sum(modify) / N)) 먼저 N에 과목의 개수를 입력받는다. 그후 list와 map, split을 통해서 과목의 점수를 score 리스트에 담는다. 그후 조작하고 나서 저장할 변수은 modify를 선언한다. 그후 score에서 값을 하나씩 꺼내와서 score의 가장 높은 점수로 나눠주고, 100을 곱해주고 modify 변수에 저장한다. 그후 마지막에 모든 modify 값들을 더하고 과목의 개수로 나눠주면, 조작된 평균을 구할 수 있다.
[백준] 3052 - 나머지 (파이썬)
[백준] 3052 - 나머지 (파이썬)
2020.04.08num_list = [] for i in range(10): temp = int(input()) num_list.append(temp % 42) num_list = set(num_list) print(len(num_list)) 먼저 num_list의 배열을 선언하고, 10개의 수를 입력받는다. 수를 입력 받음과 동시에 주어진 조건인 42로 나눠주고, 나머지를 num_list에 저장한다. 그 후 set 함수를 통해서 중복 값을 제거해주고, 리스트의 개수를 출력한다.