문제https://www.acmicpc.net/problem/1157 정답률이 40% 정도지만, 그렇게 어렵지는 않은 문제이다. 주어진 단어에서 가장 많이 사용된 알파벳을 찾아내는 문제이며, 모든 값은 대문자로 변경한 후 생각하면 된다. 먼저, 주어진 단어를 입력받고, 중복을 제거한 알파벳 리스트를 생성한다. 그 후, 알파벳 리스트를 순회하며, 주어진 단어에서 알파벳이 몇 번 나왓는지 센다. 마지막으로 알파벳의 개수에 중복이 있는지 판별한 후, 가장 많이 나온 알파벳 혹은 ?를 출력한다.틀린 풀이# 주어진 단어 입력받기word = input().upper()# 중복을 제거한 알파벳 리스트word_list = list(set(word))# 주어진 단어에서 알파벳이 몇 번 나왔는지 담을 배열 resres =..
파이썬
문제 https://www.acmicpc.net/problem/1541 문제 접근문제의 입력은 총 3가지 이다. 예제 1의 경우55-50+40 을 55-(50+40)으로 묶으면 원하는 출력값인 -35가 도출된다. 예제 2의 경우, 10+20+30+40을 괄호없이 그냥 더하면 원하는 출력값인 100이 도출된다. 예제 3의 경우에도 2와 같다. 즉, '-' 뒤에 이어지는 '+' 연산을 모두 괄호로 묶어, 가장 큰 값을 뺄셈하게 되면 값이 작아지게 된다. 풀이 방법55-50+40을 예로 들자. 1. 먼저, '-' 를 기준으로 값을 나눈다. '55', '50+40' 2. '+' 기호가 있는 값은 덧셈 연산을 수행하고, '+' 기호가 없으면 그냥 정수로 변환한다. 3. 2에서 구한 값을 sum_list에..
문제https://www.acmicpc.net/problem/11399 문제는 길지만, 요약하자면 각 사람이 돈을 인출하는데 필요한 시간의 합의 최솟값을 구하면 되는 것이다. 풀이import sys# 문제 입력받기N = int(input())lines = list(map(int, sys.stdin.readline().split()))lines.sort()sum_list = [0]# 누적합 구하기for line in lines: tmp = line + sum_list[-1] sum_list.append(tmp) print(sum(sum_list)) 먼저, 인출 시간이 적은 사람 순으로 정렬을 한 후, 각 사람마다 걸리는 시간을 합한다. 즉, 입력이 3 1 4 3 2 로 주어질 때, 1 2..
문제 설명 https://school.programmers.co.kr/learn/courses/30/lessons/176963 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 내 풀이 def solution(name, yearning, photo): # photo의 길이만큼 기본 answer 배열 생성 answer = [0] * len(photo) # 인물과 추억 점수로 딕셔너리 생성 score_dic = dict(zip(name, yearning)) for p in range(len(photo)): # 각 사진 중 정보가 있는 인물에 대해 추억점수를 더함..
문제 설명 https://school.programmers.co.kr/learn/courses/30/lessons/120921 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 내 풀이 처음 풀이(틀림) def solution(A, B): answer = 0 # B에서 A 첫번째 글자는 어디에 위치하는가? idx = B.index(A[0]) # B에서 A의 첫 번째 글자부터 문자열과 그 전의 문자열을 합쳐서 A와 같으면 idx 값을 answer로 if (B[idx:] + B[:idx]) == A: answer = idx else: answer = -1 ret..
문제 설명 https://school.programmers.co.kr/learn/courses/30/lessons/120956 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 내 풀이 def solution(babbling): words = ["aya", "ye", "woo", "ma"] for b in range(len(babbling)): for w in words: # 단어가 포함되면 빈칸으로 바꿈 babbling[b] = babbling[b].replace(w, ' ') # 모든 빈칸을 없애서 연결지음 babbling[b] = babbling[b]...
문제 설명 https://school.programmers.co.kr/learn/courses/30/lessons/120875 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 내 풀이 def solution(dots): # 기울기가 같으면 평행(기울기 = y좌표차이/x좌표차이) # 3개의 조건: 12/34 13/24 14/23 g1 = (dots[1][1]-dots[0][1]) / (dots[1][0]-dots[0][0]) g2 = (dots[3][1]-dots[2][1]) / (dots[3][0]-dots[2][0]) g3 = (dots[2][1]-dot..
문제 설명 https://school.programmers.co.kr/learn/courses/30/lessons/120885 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 내 풀이 def solution(bin1, bin2): a = int(bin1, 2) b = int(bin2, 2) return bin(a + b)[2:] 이진수를 다루는 부분은 잘 몰라서 다른 사람의 풀이를 보고 풀었다. int함수를 이용해 먼저 bin1, bin2을 정수형 숫자로 변환한다. 그 후, 합을 구한 후, 2진수로 변환하기 위해 bin( )을 사용한다. bin(a + b)..
문제 설명 https://school.programmers.co.kr/learn/courses/30/lessons/120866 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 내 풀이 def solution(board): answer = 0 # 지뢰의 인덱스를 담은 배열 land_arr land_arr = [] # 지뢰의 인덱스를 찾아서 land_arr 배열에 담음 for i in range(len(board)): for j in range(len(board)): if board[i][j] == 1: land_arr.append([i,j]) # 위, 우측 ..
문제 설명 https://school.programmers.co.kr/learn/courses/30/lessons/120860 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 내 풀이 def solution(dots): # dots 배열의 가장 마지막 원소를 기준점으로 잡음 standard = dots.pop() # 가장 마지막 원소가 빠진 dots 배열을 순회하며.. for x, y in dots: # 기준점과 x좌표가 같은 좌표는 세로의 길이(y좌표의 차이)를 구함 if x == standard[0]: length = abs(y-standard[1]) ..