이진법5 [프로그래머스] (Swift) 비밀지도 (2018 카카오 1차) - Lv.1 머리말 문제 링크 이번 문제는 설명이 매우 길어서 한번에 캡처가 힘들어 링크만 첨부했다. 코딩테스트 연습 - [1차] 비밀지도 | 프로그래머스 스쿨 풀이 처음에는 Swift에서 제곱 메서드를 찾지 못해 직접 구현했다. 우선 정해진 길이의 이진법으로 변환하는 함수를 구현했다. 이진수의 길이와 정해진 길이를 고려해 "0"을 더할지 말지를 정했다. 이제는 매개변수로 주어진 배열을 1번의 함수를 이용해 이진수로 변환한다. 2번으로 구한 이진수로 서로 겹치는 과정이 필요하다. 이진수 문자열을 다시 쪼개어 각 자리를 더하여 크기에 따라 서로 다른 문자열로 변환하고 이를 연결하는 과정을 구현했다. 코드 func solution(_ n:Int, _ arr1:[Int], _ arr2:[Int]) -> [String] {.. 2023. 5. 9. [프로그래머스] (Swift) 다음 큰 숫자 - Lv.2 코딩테스트 연습 - 다음 큰 숫자 | 프로그래머스 스쿨 📌 풀이 풀이 순서 우선 주어진 매개변수를 이진수의 문자열로 변환한다. 결괏값을 n으로 초기화한다. 십진수를 이진수로 변환하여 1의 개수를 세는 함수를 만든다 먼저 결괏값을 1 증가시켜 다음 수로 만든다. 기존의 n 값과 4번의 결괏값으로 3번의 함수를 써서 개수가 같을 때까지 무한 루프를 반복한다. 5번에서 탈출한 결괏값을 출력한다. 예외 조건 위의 풀이 순서로 하니 테스트 케이스 딱 하나가 시간 초과가 떴다. 아니 무슨... 왜... 혹시나 예제의 데이터처럼 이진수의 숫자가 모두 1인 수는 다음 숫자로 변환하는데 시간이 많이 걸릴까하는 생각이 들었다. 이진수로 변환했을 때 숫자가 모두 1인 예외 조건 맨 왼쪽의 1을 기준으로 바로 오른쪽에 0을 .. 2023. 5. 1. [프로그래머스] (Swift) 이진 변환 반복하기 - Lv.2 📌 문제 코딩테스트 연습 - 이진 변환 반복하기 | 프로그래머스 스쿨 📌 풀이 (1) 문자열에서 특정 문자 제거 - filter 메서드 filter(_:) | Apple Developer Documentation filter와 클로저를 활용하여 "0"만 제거할 수 있도록 했다. var binaryString = "0101001011" // "110010101001" binaryString.filter { $0 != "0"} // "111111" (2) 이진법 변환 - radix 이니셜라이저 init(_:radix:) | Apple Developer Documentation 형 변환 메서드 String()에 radix 이니셜라이저를 넣어 해당 진법에 맞게 반환할 수 있도록 했다. String(4, radi.. 2023. 4. 28. 컴퓨팅 사고) 정보의 표현 (in CS50 2019) 목차 앞선 포스팅에서는 컴퓨터가 이진법으로 정보를 표현하는 방법에 대해 알아 보았다. 이번에는 컴퓨터가 실제로 문자나 사진, 음악, 동영상 등의 다양한 정보를 처리하는 방식에 대해 알아 보자. 1. 문자의 표현 이진법(binary)를 통하여 컴퓨터로 문자를 표현할 수 있다. 예를 들어, Andy라는 단어를 표현하고 싶으면 십진법으로 65 110 100 121 로 표현할 수 있다. 그 중 $A$는 이진법으로 $1000001_{(2)}$로 표현할 수 있다. 어떻게 이렇게 표현할까? 바로 아스키(ASCII)를 이용하면 이렇게 표현이 가능하다. (1-1) 아스키/아스키 코드 미국 정보 교환 표준 부호(ASCII; American Standard Code for Information Interchange) 아스키.. 2023. 4. 5. [CS50 2019] (컴퓨팅 사고) 이진법 컴퓨터 과학이 무엇인지 알아 보자. 사람이 정보를 어떻게 표현하는지 생각해 보고, 컴퓨터는 정보를 어떻게 표현할 수 있는지 그 방법에 대해 알아 보자. 📌 컴퓨터 과학(Computer Science) 강의에서 교수님은 컴퓨터 과학에 대해 아래와 같이 설명했다. What is computer science? It's just a process of solving problem. 컴퓨터 과학은 무엇일까? 이것은 문제를 해결하는 과정일 뿐이다. 컴퓨터 과학이 문제를 해결하는 과정이라면, '문제를 해결하는 과정'은 과연 무엇일까? 어떠한 문제를 입력(input) 받아 적절한 답안의 출력(output)을 구하는 문제 해결 과정(a process of solving problem)이라 할 수 있다. Inputs a.. 2023. 3. 26. 이전 1 다음 반응형