BOJ 1918 후위 표기식 swift
·
알고리즘
문제 링크 : https://www.acmicpc.net/problem/1918 문제 해설중위 표기식을 후위 표기식으로 변경하는 문제입니다.중위 표기식을 후위 표기식으로 변경하는 절차를 조건문으로 작성하는 것이 정답입니다.피연산자는 바로 출력합니다.(코드에서는 String var에 추가하였습니다.)연산자는 스택에 push합니다.("+", "-", "*", "/" 등)여는 괄호는 무조건 push합니다. "("닫는 괄호가 나오면 여는 괄호를 만날 때까지 스택에서 pop합니다.(주의: "(" 여는 괄호도 제거해야 합니다.)수식이 끝나면 스택에 남은 연산자를 pop합니다. 코드더보기import Foundationlet input = readLine()!.map{ String($0) }var result = ..
[맥북 M1] Cannot install under Rosetta 2 in ARM...
·
잡담
문제 기존 인텔 맥과 실리콘 맥의 경로 차이 때문에 발생하는 문제이다.여러가지 해결방법이 있지만 이왕 터미널이 켜져있는 김에 명령어로 해결해보자.(터미널을 Rosetta로 켜기 옵션을 끄면 됨) 해결방법arch -arm64 설치 명령어예시arch -arm64 brew install yarn
BOJ 2110 공유기 설치 swift
·
알고리즘
문제 링크 : https://www.acmicpc.net/problem/2110 문제도현이의 집 N개가 수직선 위에 있다. 각각의 집의 좌표는 x1, ..., xN이고, 집 여러개가 같은 좌표를 가지는 일은 없다.도현이는 언제 어디서나 와이파이를 즐기기 위해서 집에 공유기 C개를 설치하려고 한다. 최대한 많은 곳에서 와이파이를 사용하려고 하기 때문에, 한 집에는 공유기를 하나만 설치할 수 있고, 가장 인접한 두 공유기 사이의 거리를 가능한 크게 하여 설치하려고 한다.C개의 공유기를 N개의 집에 적당히 설치해서, 가장 인접한 두 공유기 사이의 거리를 최대로 하는 프로그램을 작성하시오.입력첫째 줄에 집의 개수 N (2 ≤ N ≤ 200,000)과 공유기의 개수 C (2 ≤ C ≤ N)이 하나 이상의 빈 칸을..
[레벨 0] HTTP와 HTTPS의 차이점, 그리고 iOS에서의 보안 통신 방법에 대해 설명해주세요.
·
면접
HTTP와 HTTPS의 차이점보안: HTTPS는 SSL/TLS 암호화를 사용하여 데이터를 암호화하지만, HTTP는 평문으로 데이터를 전송합니다.포트: HTTP는 80번 포트를, HTTPS는 443번 포트를 사용합니다.URL: HTTP는 "http://"로, HTTPS는 "https://"로 시작합니다.데이터 무결성: HTTPS는 데이터 변조를 방지할 수 있지만, HTTP는 그렇지 않습니다.검색 엔진 최적화: HTTPS는 검색 순위 향상에 도움됩니다.iOS에서의 보안 통신 방법HTTPS 사용: 모든 네트워크 통신에 HTTPS를 사용합니다.인증서 고정(Certificate Pinning): 신뢰할 수 있는 인증서만 허용하도록 구현합니다.ATS(App Transport Security) 활용: iOS의 ATS..
[레벨 0] 네트워크 프로토콜 스택과 iOS에서의 네트워크 통신 방식에 대해 설명해주세요.
·
면접
네트워크 프로토콜 스택프로토콜 스택은 데이터 통신에 사용되는 계층화된 프로토콜의 집합입니다.계층 구조로 이루어져 있어 각 계층이 특정 역할을 담당합니다.상위 계층에서 하위 계층으로 데이터가 전달되며, 각 계층에서 헤더 정보가 추가됩니다.(캡슐화)대표적인 모델로 OSI 7계층과 TCP/IP 4계층이 있습니다.TCP/IP 프로토콜 스택의 주요 계층응용 계층: HTTP, FTP, SMTP 등전송 계층: TCP, UDP인터넷 계층: IP네트워크 인터페이스 계층iOS에서의 네트워크 통신 방식URL SessioniOS의 기본 네트워킹 APIHTTP/HTTPS 요청을 처리하는 데 사용비동기적으로 데이터를 주고받을 수 있음Alamofire서드파티 네트워킹 라이브러리URLSession을 기반으로 하지만 더 간편한 인터..
[레벨 0] iOS에서의 메모리 구조와 관리 방식에 대해 자세히 설명해주세요.
·
면접
메모리 구조Clean Memory페이지 아웃 가능한 데이터로, 메미로 매핑된 파일, 이미지, 프레임워크 등이 포함됩니다.필요시 디스크에서 다시 로드할 수 있어 시스템에 의해 해제될 수 있습니다.Dirty Memory앱에 의해 수정된 메모리로, 런타임 중 생성된 객체나 데이터 구조가 포함됩니다.디스크와 동기화되지 않아 시스템이 쉽게 해제할 수 없습니다.Compressed MemoryiOS 7부터 도입된 메모리 압축 기술을 통해 관리되는 메모리입니다.접근되지 않은 페이지를 압축하여 공간을 절약하고, 필요시 다시 압축 해제합니다.메모리 관리 방식Automatic Reference Counting (ARC)컴파일 시점에 자동으로 retain/release 코드를 삽입하여 객체의 참조 횟수를 관리합니다.참조 횟수..
[레벨 0] iOS의 샌드박스(Sandbox) 개념과 역할, 그리고 앱 간 데이터 공유 방법에 대해 설명해주세요.
·
면접
iOS의 샌드박스(Sandbox)는 앱의 보안과 사용자 데이터 보호를 위한 핵심 기술입니다.샌드박스의 개념샌드박스는 각 앱을 격리된 환경에서 실행하도록 하는 보안 기술입니다. 이는 앱이 시스템 리소스, 파일, 네트워크 등에 대한 접근을 제한하고 통제합니다.앱 격리각 앱은 고유한 홈 디렉토리를 가지며, 다른 앱의 파일이나 리소스에 직접 접근할 수 없습니다.이를 통해 한 앱의 문제가 다른 앱이나 시스템에 영향을 미치는 것을 방지합니다.데이터 보호앱은 자신의 데이터만 접근할 수 있으며, 다른 앱의 데이터를 수정하거나 접근할 수 없습니다.사용자의 개인 정보와 중요한 데이터를 보호합니다.시스템 리소스 보호시스템 파일과 리소스는 앱으로부터 보호됩니다.대부분의 iOS 시스템 파일은 비특권 사용자 "mobile"로 실..
[레벨 0] 메모리 관리 기법 중 iOS에서 사용되는 방식과 그 특징에 대해 설명해주세요.
·
면접
자동 참조 카운팅(ARC)ARC는 iOS의 핵심 메모리 관리 기법입니다.컴파일러가 자동으로 객체의 참조 횟수를 추적하고 관리합니다.개발자가 직접 retain/release를 호출할 필요가 없어 메모리 관리의 복잡성이 크게 줄어듭니다.참조 횟수가 0이 되면 객체를 자동으로 해제합니다.순환 참조 문제를 방지하기 위해 weak와 unowned 참조를 제공합니다.값 타입과 참조 타입값 타입(구조체, 열거형 등)은 스택에 저장되어 빠르고 효율적으로 관리됩니다.참조 타입(클래스)은 힙에 저장되며 ARC로 관리됩니다.메모리 경고 시스템iOS는 앱에 메모리 부족 경고를 보내 불필요한 리소스를 해제할 기회를 제공합니다.지연 초기화(Lazy Initialization)필요한 시점에 객체를 생성하여 메모리 사용을 최적화합니..
[Dart] 4. Classes
·
Flutter
class Person { final String name = 'gwanson'; int age = 26; void greeting() { print("Hi my name is $name"); }}void main() { var person = Person(); person.age = 27; person.greeting();}// 출력// Hi my name is gwansonConstructor methodconstructor method는 class의 이름과 같아야 합니다.class Person { final String name; int age; Person(this.name, this.age); void greeting() {..
[Dart] 3. Functions
·
Flutter
함수 선언void greeting(String name) { print('Hello my name is $name!');// 1String greetingString(String name) { return 'Hello my name is $name';}// 2String greetingString(String name) => "Hello my name is $name";}void main() { greeting('gwanson'); print(greetingString('gwanson'));}리턴값이 없는 함수는 void 로 선언을 하고, 리턴값이 존재하는 함수는 해당하는 타입으로 선언합니다.(예: String,int )named parameterString greeting({ ..