본문 바로가기

코딩 테스트279

ZOAC 4 첫번쨰 코드 나는 가로, 세로 각각 등차수열이라 생각하여 계산한 후직사각형 모양으로 생각하여 가로와 세로를 곱하는 형식으로 계산하였다. 즉, 자리가 1씩 떨어져야 하면 공차를 2(1+1)로 생각하여 2x+1으로 일반화된 식을 생각한다.위 식은 x=0일때부터 성립하므로 최대 x값을 구한 후 1을 더해준다. 이렇게 가로와 세로의 x를 구한 후 두 값을 구한다. import sys input = sys.stdin.readline h, w, n, m = map(int, input().split()) y = (h-1) // (n+1) x = (w-1) // (m+1) print((y+1) * (x+1)) 통과!링크https://github.com/ornni/programmers/tree/main/%EB%B0%B1.. 2024. 11. 15.
삼각형과 세 변 첫번째 코드 문제 말대로 따라가면 된다!각각 삼각형의 세 변으로 할당한다.이떄 삼각형의 조건을 만족하는 경우로 먼저 시작해야 하므로, 정렬을 한 후에 각각 할당하면 이해가 편하다 조건1. 삼각형이 성립이 되는가?가장 긴 변이 나머지 두 변의 길이의 합보다 커야 한다. 조건2. 문제 속에 주어진 삼각형 이름 조건 부여 import sys input = sys.stdin.readline lengths = [] while True:     a, b, c = map(int, input().split())     if a == 0 and b == 0 and c == 0:         break     else:         lengths.append([a, b, c]) for now_lengths in len.. 2024. 11. 11.
성격 유형 검사하기 첫번째 코드 성격 유형은 각 번호 중 하나로 구성된다.1번: 라이언형(R), 튜브형(T)2번: 콘형(C), 프로도형(F)3번: 제이지형(J), 무지형(M)4번: 어피치형(A), 네오형(N) 그렇기에 각각의 성격 유형별로 값을 만들어낸 후, 두개 중 큰 값을 선택하고만약 두 개의 값이 같은 경우 앞에 있는 유형을 가져오기로 한다. 이를 위해 딕셔너리를 이용하고 키와 값을 이용하여 유형별 값을 만들어낸다.이후에 2개씩 잘라 각 유형 중 큰 값의 키를 가져온다.  def solution(survey, choices):     answer = ''          result = {'R':0, 'T':0, 'C':0, 'F':0, 'J':0, 'M':0, 'A':0, 'N':0}     result_keys =.. 2024. 11. 8.
닉네임 규칙 첫번째 코드 디버깅으로 한 문장만 바꾸며 되는 문제로 문제에 해당 하는 코드는 대부분 작성되어 있다. 내가 집중한 곳은 문자의 길이를 맞추는 부분이다.문자가 8자리보다 긴 경우는 8까지 보는 것으로 문제가 되지 않으나,문자가 4자리보다 짧은 경우 4자리가 될 떄까지 문자열을 추가해야 한다.하지만 코드상으로는 'o' 하나만 추가하는 것을 볼 수 있다.즉, 만약 문자의 길이가 1이라면 'ooo'를 추가해야 하지만 현재의 코드는 'o'만 추가한다는 것이다.그러므로 부족한 길이의 차이를 구한 후 해당 길이만큼 문자열을 추가한다. def solution(nickname):     answer = ""     for letter in nickname:         if letter == "l":          .. 2024. 11. 4.
대충 만든 자판 첫번째 코드 문제를 읽어보고 내가 먼저 든 생각은 "이 문제를 제약이 없는 일반화된 상태에서도 풀 수 있도록 만들고 싶다"는 것이었다.그렇기 때문에 가장 먼저 생각난 것은 1. 문자별로 눌러야 하는 최소의 숫자를 딕셔너리 형태로 저장하자는 것이었다.그 후에 2. targets의 문자를 딕셔너리에서 찾아 정답을 구하는 방식이었다. 1. 문자별로 눌러야 하는 최소의 숫자를 딕셔너리 형태로 저장하기- 빈 딕셔러니(key_dict)를 만든다- keymap의 모든 단어들과 알파벳들을 거쳐가면서 최소(min)의 눌러야 하는 값을 비교하면서 값으로 저장한다. 2. targets의 문자를 찾아 정답 구하기- targets의 단어들을 거치기 위해 각 단어별로 최소한으로 눌러야 하는 값 now_answer = 0으로 초기.. 2024. 11. 1.
문자열 나누기 첫번째 코드 문제를 열심히 읽어봐야 한다!!! (이전에 어떻게 이해했는지 기억이 안나지만 한두번 읽다가 엥 뭐야? 했었다...ㅎ;)현재의 문자를 now로 설정한 뒤 현재의 문자의 개수(now_count)와 다른 문자의 개수(diff_count)를 센다.now_count와 diff_count의 개수가 같아지는 경우, 문자를 끊으므로 answer에 1을 더한 후, now_count, diff_count, now를 초기화한다.만약 끝까지 진행된 경우 now_count에 숫자가 들어있는 경우, 해당 문자열끼리 잘라 종료하므로 answer에 1을 더한다.최종 답안인 answer를 보인다. def solution(s):     answer = 0     now_count = 0     diff_count = 0  .. 2024. 10. 28.
728x90