반응형

Programming 43

Golang 웹 크롤링/크롤러

다음의 예제 코드는 https://example.com 웹 페이지를 크롤링 하여 h1 태그를 추출하여 출력하는 예제 코드이다. 사용된 패키지에 대해 간단히 설명하자면 다음과 같다. - fmt: 생략 - io/ioutil: 파일 입출력을 쉽게 처리하기 위한 함수들을 제공. ioutil.ReadAll() 함수는 HTTP 응답의 본문을 읽어온다. - net/http: HTTP 클라이언트와 서버를 구현하는 함수와 타입들을 제공. http.Get() 함수를 사용하여 웹 페이지에 GET 요청. - regexp: 정규 표현식을 사용하여 텍스트를 검색, 추출하고 패턴 매칭을 수행하는 함수를 제공. 받아온 HTML 문서에서 태그의 내용을 추출하기 위해 정규식을 활용. package main import ( "fmt" "..

Programming/Golang 2023.06.01

Golang 슬라이스 정렬(오름차순, 내림차순)

sort.Ints() 함수를 사용하여 슬라이스를 오름차순으로 정렬할 수 있다. 예제) package main import ( "fmt" "sort" ) func main() { nums := []int{7, 2, 9, 1, 6, 3, 8, 5, 4} sort.Ints(nums) fmt.Println(nums) } // [1 2 3 4 5 6 7 8 9] sort.Reverse() 함수를 사용하여 내림차순으로 정렬할 수 있다. 예제) package main import ( "fmt" "sort" ) func main() { nums := []int{5, 2, 8, 1, 3, 9, 4, 6, 7} sort.Sort(sort.Reverse(sort.IntSlice(nums))) fmt.Println(nums)..

Programming/Golang 2023.04.10

옹알이 (1)

링크: https://school.programmers.co.kr/learn/courses/30/lessons/120956 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이: def solution(babbling): babbling_list = ["aya", "ye", "woo", "ma"] answer = 0 for i in babbling: for j in babbling_list: i = i.replace(j, "*") if i == "*" * len(i): answer += 1 return answer babbling_list 내의 문자열과 b..

유한소수 판별하기

링크: https://school.programmers.co.kr/learn/courses/30/lessons/120878 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이: # 분자 : molecule # 분모 : denominator # 최대 공약수 : gcd(greatest common divisor) def solution(a, b): den = b # 분모 원래 값을 저장 while b: # b가 0이 될때 까지 나눠서 최대 공약수를 구한다. (유클리드 호제법 참고) a, b = b, a % b den = den // a # a = 최대 공약수..

평행

링크: https://school.programmers.co.kr/learn/courses/30/lessons/120875 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이: solution = lambda dots:1 if (dots[0][1] - dots[1][1]) / (dots[0][0] - dots[1][0]) == (dots[2][1] - dots[3][1]) / (dots[2][0] - dots[3][0]) or (dots[0][1] - dots[2][1]) / (dots[0][0] - dots[2][0]) == (dots[1][1] - d..

겹치는 선분의 길이

링크: https://school.programmers.co.kr/learn/courses/30/lessons/120876 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이: solution=lambda lines:len(set([i for i in range(lines[0][0], lines[0][1])]) & set([i for i in range(lines[1][0], lines[1][1])]) | set([i for i in range(lines[0][0], lines[0][1])]) & set([i for i in range(lines[2][0..

Golang UUID 생성

UUID(Universally Unique Identifier)는 범용 고유 식별자를 의미한다. UUID는 랜덤 값에 시간, MAC 주소 등의 정보를 조합하여 생성된다. UUID는 일반적으로 데이터베이스 레코드 식별자, 세션 ID, 파일명 등에 사용된다. Go에서 UUID를 생성하려면 UUID v4를 사용할 수 있다. UUID v4는 완전한 무작위성에 기반한 128비트 숫자로, 거의 중복될 가능성이 매우 적다. Go에서 UUID v4를 생성하는 방법은 다음과 같다. package main import ( "fmt" "github.com/google/uuid" ) func main() { // Generate a new UUID v4 uuid := uuid.New() // Print the UUID fmt..

Programming/Golang 2023.03.27

Golang 임시 파일 생성(os.CreateTemp)

os.CreateTemp() 함수는 임시 파일을 생성하는 함수이다. 함수를 호출하면 임시 파일이 생성되고, 그 파일을 열 수 있는 파일 핸들과 파일 이름을 반환한다. 파일 핸들을 사용하여 파일에 쓰거나 파일에서 읽을 수 있다. 일반적으로 임시 파일은 프로그램이 실행되는 동안 사용되며, 더 이상 필요하지 않을 때 제거된다. 함수 원형은 다음과 같다. func CreateTemp(dir, prefix string) (*os.File, error) 인자로는 다음과 같은 값이 전달된다. dir: 임시 파일이 생성될 디렉토리 경로이다. 이 값이 빈 문자열이면 기본값으로 /tmp가 사용된다. prefix: 임시 파일 이름의 접두어다. 이 값이 빈 문자열이면 기본값으로 "tmp"가 사용된다. 예제 package ma..

Programming/Golang 2023.03.27

Golang JSON을 CSV로 변환

Go에서 Json을 CSV로 변경하기 위해서는 encoding/csv와 encodeing/json 패캐지를 사용한다. package main import ( "encoding/csv" "encoding/json" "fmt" "log" "os" ) func main() { // 예제 데이터 jsonData := `[{"name":"Uhm", "age":19, "city":"Soeul"}, {"name":"Jun", "age":23, "city":"Tokyo"}, {"name":"Sik", "age":27, "city":"Los Angeles"}]` // json 데이터를 슬라이스 형태의 맵으로 변환. var data []map[string]interface{} err := json.Unmarshal([]b..

Programming/Golang 2023.03.15
반응형