본문 바로가기

분류 전체보기151

[프로그래머스] (Swift) [카카오 1차] 다트 게임 머리말 문제 링크 코딩테스트 연습 - [1차] 다트 게임 | 프로그래머스 스쿨 이 문제를 선택한 이유 구현 문제 연습 풀이 도저히 안 풀려서… 결국 구글링을 했다😭 참고 사이트 링크 [프로그래머스 lv1] [1차] 다트 게임 (파이썬) 풀이 핵심 → 스택 문제 풀이의 핵심은 "스택"을 구현하여, 주어진 배열의 요소를 하나하나 꺼내면서 이에 대한 조건문에 따라 스택에 삽입하거나 삭제하는 것이다. 풀이 순서 문자열의 문자 하나하나를 요소로 하는 배열을 만든다.(dartArr) 다만,숫자 10은 2글자이기에 1번에 앞서 10을 "a"로 변환한다. "S", "D", "T"를 각각 1, 2, 3에 해당하는 딕녀서리를 할당한다.(bonusDict) 빈 스택을 할당한다.(stack) 이제 1번의 배열의 요소를 반복하.. 2023. 6. 2.
[세션 기록] (5월) 애플 디벨로퍼 아카데미 로드쇼 @한양대 보호되어 있는 글 입니다. 2023. 6. 1.
[프로그래머스] 두 수의 합 머리말 문제 링크 코딩테스트 연습 - 두 수의 합 | 프로그래머스 스쿨 이 문제를 선택한 이유 구현 문제 연습 문자열 풀이 주의점 문제의 조건에서 a와 b의 길이가 최대 100,000인 점을 주의해야 한다. 단순히 문자열을 정수로 변환하여 더하면, 오버플로우에 의해 오류가 난다. 따라서 사람이 직접 계산하는 방식(혹은 논리회로에서 전가산기의 방식)으로 접근해야 한다. 숫자를 맨끝에서 더하면서 자리올림과 나머지를 나누어, 새로운 배열에 추가할 것이다. 풀이 순서 우선 파라미터의 값 중에 큰 수와 작은 수를 구분하여 각각 할당한다. (bigNumber, smallNumber) 문자열을 정수를 요소로 갖는 배열로 새로 할당한다(bigNumberArr, smallNumberArr) 각 자리를 더한 값의 배열(s.. 2023. 5. 30.
백준) 1141번: 접두사 (Swift) 목차 머리말 문제 링크 1141번: 접두사 이 문제를 선택한 이유 구현 문제 연습 Swift 문자열 인덱스 접근 연습 풀이 n과 단어를 배열에 할당 첫 줄의 숫자를 정수로 변환하여 n으로 할당한다. 다음 줄부터는 n에 대한 반복문을 돌며 빈 배열에 하나하나씩 문자열을 추가한다. isPrefix 함수 우선 맨 아래 두 단어를 비교하여 한 단어가 다른 단어의 접두사인지를 판별하는 함수(isPrefix)를 만들었다. 두 단어 중 작은 값을 범위로 하여 문자열 인덱스를 접근하는데, 같은 값이면 카운트를 한다 카운트가 범위와 값이 같으면 접두사가 충족하기에 true를, 그렇지 않으면 기본값인 false를 리턴한다. 이중 반복문을 통한 인덱스 접근 두 단어를 조합하기 위해 이중 반복문으로 인덱스를 접근한다. isP.. 2023. 5. 29.
[CS50 2019] (C언어) 문자열 머리말 참고 자료 모두를 위한 컴퓨터 과학 (CS50 2019) > 2) 문자열 : 부스트코스 get_string과 string get_string 함수 스크래치의 say의 기능은 c언어의 get_string과 유사하다 string 문자열(string)은 프로그래밍에서 단어나 구절, 문장을 말하는데 숫자와는 다른 형태를 갖고 있다 값 입력 타입 명시 c언어는 변수 이름 앞에 저장하고 하는 값의 종류가 적혀야 한다. string answer = get_string("What's your name?\\n"); = 연산자 수학에서 =는 동등하다는 뜻이지만, 프로그래밍에서는 우항을 좌항에 대입(할당)하는 의미이다. 값 출력 printf 함수와 형식 지정 문자(%) 출력 함수에서 원하는 변수를 출력하려면 형식 지.. 2023. 5. 27.
[CS50 2019] (C언어) C 기초 머리말 참고 자료 모두를 위한 컴퓨터 과학 (CS50 2019) > 1) C 기초 : 부스트코스 C언어에서 배울 내용 소개 functions conditions Boolean expressions loops C언어 작성 hello.c 파일 hello world 출력 코드 #include int main(void) { printf("hello, world!"); } printf printf에서 f는 format(형식)을 뜻한다 괄호 안의 문장을 출력하라는 뜻 include 작성한 함수가 어디서 저장되어 있는지를 알려주어야 한다 stdio.h 파일을 참고하라는 뜻 컴파일러와 파일 실행 컴파일러(compiler) 저번 시간에 배운 이진법에 의하면, 컴퓨터는 0과 1만 이해한다. C 언어 또한 이해하지 못함. .. 2023. 5. 27.
[CS Basics] 32비트의 주솟값과 메모리 크기 머리말 글을 쓰게 된 이유 슬랙에서 32비트에 관련된 질문이 올라와서 이에 대한 답변을 정리하면서 블로그를 올리게 되었다. 질문과 답변 질문 표현의 단위와 용량이 헷갈리고 잘 이해가 안갑니다. 32bit 는 4byte인데, 32bit 레지스터는 2^32로 42억개의 주소를 가질 수 있습니다. 그런데 4byte는 영문 4글자정도 표현이 고작인데 42억개의 주소를 가질 수 있는 용량인 게 무엇인가요? 나의 답변 CPU와 메모리의 구조 이건 컴퓨터 구조에 대해 좀 알아야 이해할 수 있을 것 같습니다. CPU와 메모리의 구조가 어떻게 작동하는지를 봐야할 것 같아요. 한번 그림을 그려봤는데 우선 32비트 아키텍처는, CPU의 레지스터가 처리하는 "주소값의 길이"가 32비트여서 $2^{32}$가지로 표현이 가능합니.. 2023. 5. 27.
[백준] (Swift) 11866번: 요세푸스 문제 0 머리말 문제 링크 11866번: 요세푸스 문제 0 이 문제를 선택한 이유 낯선 문제를 접했을 떄 적절한 반복문과 조건문을 사용하기 위함 구현 문제 연습 풀이 이 문제의 핵심은 배열의 인덱스가 초과할 때, 얼마만큼 처음의 인덱스로 돌아가서 인덱스를 구하는지이다. 나머지 연산자를 활용하여 배열의 길이만큼을 나눈 나머지를 구해 인덱스 초과를 방지한다 // 입력 var input = readLine()!.split(separator: " ").map { Int($0)! } // n, k 할당 let n = input[0] // 7 let k = input[1] // 3 // 배열 할당 var circle = Array(1...n) // 인덱스 초기화 var order = [Int]() var index = 0 .. 2023. 5. 26.
[백준] (Python) A와 B 머리말 문제 링크 12904번: A와 B 이 문제를 선택한 이유 문제를 읽고 해석할 수 있는 능력(문해력) 반복문과 조건문을 적재적소에 활용하기 구현 문제 유형 연습 풀이 1) 잘못된 접근 방식 - 브루트 포스 처음에는 2가지의 연산이 존재하고 각각 결과론적으로 A를 추가하거나 B를 추가하거나 2가지이다. $n$ = (결괏값의 길이) - (초깃값의 길이)만큼의 경우의 수가 있으니 브루트 포스로 접근하면 되겠구나 싶었다. 결국 길이에 대한 2가지의 연산이므로 $2^{n}$을 생각하여 문제를 풀었다. # =================== 브루트 포스 -> 시간 초과 ===================== # S와 T 입력 input_string = input().strip() objective_string.. 2023. 5. 26.
[백준] (Python) 7568번: 덩치 머리말 문제 링크 7568번: 덩치 이 문제를 선택한 이유 구현 문제 연습 반복문과 조건문을 적재적소에 활용하기 위함 풀이 몸무게와 키에 대한 표를 리스트의 요소로서 할당해야 한다. 여기서 몸무게와 키는 튜플로 묶어서 할당했다. 리스트의 요소를 반복하면서 현재의 요소를 1등으로 초기화한다. 자신을 포함한 다른 모든 요소를 비교하면서 자신보다 몸무게도 많이 나가고 키도 큰 사람이 있다면 나의 등수의 숫자의 크기를 늘린다. 여기서 자기 자신을 포함해도 4번의 조건에 해당하지 않기에 괜찮다. 4번에서 나온 등수를 공백 단위로 하나하나 출력한다. # 7568번: 덩치 # 실버 5 # # import sys # sys.stdin = open("input.txt", "r") # input = sys.stdin.re.. 2023. 5. 24.
반응형